| import {createFrame, extend, toString} from './utils'; |
| import Exception from './exception'; |
| import {registerDefaultHelpers} from './helpers'; |
| import {registerDefaultDecorators} from './decorators'; |
| import logger from './logger'; |
| |
| export const VERSION = '4.0.11'; |
| export const 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' |
| }; |
| |
| 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]; |
| } |
| }; |
| |
| export let log = logger.log; |
| |
| export {createFrame, logger}; |