twing
Version:
First-class Twig engine for Node.js
31 lines (30 loc) • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeBaseIncludeNodeSynchronously = exports.executeBaseIncludeNode = void 0;
const traceable_method_1 = require("../helpers/traceable-method");
const include_1 = require("../extension/core/functions/include");
const is_plain_object_1 = require("../helpers/is-plain-object");
const executeBaseIncludeNode = async (node, executionContext, getTemplate) => {
const { nodeExecutor: execute, outputBuffer, sandboxed, template } = executionContext;
const { variables } = node.children;
const { only, ignoreMissing } = node.attributes;
const templatesToInclude = await getTemplate(executionContext);
const traceableInclude = (0, traceable_method_1.getTraceableMethod)(include_1.include, node, template.source);
const output = await traceableInclude(executionContext, templatesToInclude, await execute(variables, executionContext), !only, ignoreMissing, sandboxed);
outputBuffer.echo(output);
};
exports.executeBaseIncludeNode = executeBaseIncludeNode;
const executeBaseIncludeNodeSynchronously = (node, executionContext, getTemplate) => {
const { nodeExecutor: execute, outputBuffer, sandboxed, template } = executionContext;
const { variables: variablesNode } = node.children;
const { only, ignoreMissing } = node.attributes;
const templatesToInclude = getTemplate(executionContext);
const traceableInclude = (0, traceable_method_1.getSynchronousTraceableMethod)(include_1.includeSynchronously, node, template.source);
let variables = execute(variablesNode, executionContext);
if ((0, is_plain_object_1.isPlainObject)(variables)) {
variables = new Map(Object.entries(variables));
}
const output = traceableInclude(executionContext, templatesToInclude, variables, !only, ignoreMissing, sandboxed);
outputBuffer.echo(output);
};
exports.executeBaseIncludeNodeSynchronously = executeBaseIncludeNodeSynchronously;