| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import { createFrame, extend, toString } from './utils';
- import Exception from './exception';
- import { registerDefaultHelpers } from './helpers';
- import { registerDefaultDecorators } from './decorators';
- import logger from './logger';
- import { resetLoggedProperties } from './internal/proto-access';
- export const VERSION = '4.7.6';
- export const COMPILER_REVISION = 8;
- export const LAST_COMPATIBLE_COMPILER_REVISION = 7;
- export const REVISION_CHANGES = {
- 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
- 2: '== 1.0.0-rc.3',
- 3: '== 1.0.0-rc.4',
- 4: '== 1.x.x',
- 5: '== 2.0.0-alpha.x',
- 6: '>= 2.0.0-beta.1',
- 7: '>= 4.0.0 <4.3.0',
- 8: '>= 4.3.0'
- };
- const objectType = '[object Object]';
- export function HandlebarsEnvironment(helpers, partials, decorators) {
- this.helpers = helpers || {};
- this.partials = partials || {};
- this.decorators = decorators || {};
- registerDefaultHelpers(this);
- registerDefaultDecorators(this);
- }
- HandlebarsEnvironment.prototype = {
- constructor: HandlebarsEnvironment,
- logger: logger,
- log: logger.log,
- registerHelper: function(name, fn) {
- if (toString.call(name) === objectType) {
- if (fn) {
- throw new Exception('Arg not supported with multiple helpers');
- }
- extend(this.helpers, name);
- } else {
- this.helpers[name] = fn;
- }
- },
- unregisterHelper: function(name) {
- delete this.helpers[name];
- },
- registerPartial: function(name, partial) {
- if (toString.call(name) === objectType) {
- extend(this.partials, name);
- } else {
- if (typeof partial === 'undefined') {
- throw new Exception(
- `Attempting to register a partial called "${name}" as undefined`
- );
- }
- this.partials[name] = partial;
- }
- },
- unregisterPartial: function(name) {
- delete this.partials[name];
- },
- registerDecorator: function(name, fn) {
- if (toString.call(name) === objectType) {
- if (fn) {
- throw new Exception('Arg not supported with multiple decorators');
- }
- extend(this.decorators, name);
- } else {
- this.decorators[name] = fn;
- }
- },
- unregisterDecorator: function(name) {
- delete this.decorators[name];
- },
- /**
- * Reset the memory of illegal property accesses that have already been logged.
- * @deprecated should only be used in handlebars test-cases
- */
- resetLoggedPropertyAccesses() {
- resetLoggedProperties();
- }
- };
- export let log = logger.log;
- export { createFrame, logger };
|