UNPKG

twing

Version:

First-class Twig engine for Node.js

31 lines (30 loc) 1.97 kB
"use strict"; 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;