19bdace85a
Extracts the parser to `@handlebars/parser`, where it can be shared between different implementations. This means that e.g. Glimmer/Ember will be able to iterate on new features without forcing Handlebars to adopt them immediately, and vice versa. All implementors will be able to absorb changes as it makes sense for them.
38 lines
971 B
JavaScript
38 lines
971 B
JavaScript
import { Exception } from '@handlebars/parser';
|
|
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 * as Utils from './handlebars/utils';
|
|
import * as runtime from './handlebars/runtime';
|
|
|
|
import noConflict from './handlebars/no-conflict';
|
|
|
|
// 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 inst = create();
|
|
inst.create = create;
|
|
|
|
noConflict(inst);
|
|
|
|
inst['default'] = inst;
|
|
|
|
export default inst;
|