UNPKG

twing

Version:

First-class Twig engine for Node.js

39 lines (38 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.templateFromStringSynchronously = exports.templateFromString = void 0; const template_1 = require("../../../template"); const createHash = require("create-hash"); const source_1 = require("../../../source"); const getAST = (executionContext, code, name) => { const { environment } = executionContext; const hash = createHash("sha256").update(code).digest("hex").toString(); if (name !== null) { name = `${name} (string template ${hash})`; } else { name = `__string_template__${hash}`; } return environment.parse(environment.tokenize((0, source_1.createSource)(name, code))); }; /** * Loads a template from a string. * * <pre> * {{ include(template_from_string("Hello {{ name }}")) }} * </pre> * * @param executionContext * @param code * @param name An optional name for the template to be used in error messages */ const templateFromString = (executionContext, code, name) => { const ast = getAST(executionContext, code, name); return Promise.resolve((0, template_1.createTemplate)(ast)); }; exports.templateFromString = templateFromString; const templateFromStringSynchronously = (executionContext, code, name) => { const ast = getAST(executionContext, code, name); return (0, template_1.createSynchronousTemplate)(ast); }; exports.templateFromStringSynchronously = templateFromStringSynchronously;