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.
48 lines
1012 B
JavaScript
48 lines
1012 B
JavaScript
import {
|
|
parser as Parser,
|
|
parse,
|
|
parseWithoutProcessing,
|
|
Visitor
|
|
} from '@handlebars/parser';
|
|
|
|
import runtime from './handlebars.runtime';
|
|
|
|
// Compiler imports
|
|
import AST from './handlebars/compiler/ast';
|
|
import { Compiler, compile, precompile } from './handlebars/compiler/compiler';
|
|
import JavaScriptCompiler from './handlebars/compiler/javascript-compiler';
|
|
|
|
import noConflict from './handlebars/no-conflict';
|
|
|
|
let _create = runtime.create;
|
|
function create() {
|
|
let hb = _create();
|
|
|
|
hb.compile = function(input, options) {
|
|
return compile(input, options, hb);
|
|
};
|
|
hb.precompile = function(input, options) {
|
|
return precompile(input, options, hb);
|
|
};
|
|
|
|
hb.AST = AST;
|
|
hb.Compiler = Compiler;
|
|
hb.JavaScriptCompiler = JavaScriptCompiler;
|
|
hb.Parser = Parser;
|
|
hb.parse = parse;
|
|
hb.parseWithoutProcessing = parseWithoutProcessing;
|
|
|
|
return hb;
|
|
}
|
|
|
|
let inst = create();
|
|
inst.create = create;
|
|
|
|
noConflict(inst);
|
|
|
|
inst.Visitor = Visitor;
|
|
|
|
inst['default'] = inst;
|
|
|
|
export default inst;
|