/*global window */ import * as base from './handlebars/base'; // Each of these augment the Handlebars object. No need to setup here. // (This is done to easily share code between commonjs and browse envs) import SafeString from './handlebars/safe-string'; import Exception from './handlebars/exception'; import * as Utils from './handlebars/utils'; import * as runtime from './handlebars/runtime'; // For compatibility and usage outside of module systems, make the Handlebars object a namespace function create() { let hb = new base.HandlebarsEnvironment(); Utils.extend(hb, base); hb.SafeString = SafeString; hb.Exception = Exception; hb.Utils = Utils; hb.escapeExpression = Utils.escapeExpression; hb.VM = runtime; hb.template = function(spec) { return runtime.template(spec, hb); }; return hb; } let Handlebars = create(); Handlebars.create = create; /*jshint -W040 */ /* istanbul ignore next */ let root = typeof global !== 'undefined' ? global : window, $Handlebars = root.Handlebars; /* istanbul ignore next */ Handlebars.noConflict = function() { if (root.Handlebars === Handlebars) { root.Handlebars = $Handlebars; } }; Handlebars['default'] = Handlebars; export default Handlebars;