twing
Version:
First-class Twig engine for Node.js
30 lines (29 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSetNode = void 0;
const node_1 = require("../node");
const constant_1 = require("./expression/constant");
const createSetNode = (captures, names, values, line, column, tag) => {
const setNode = (0, node_1.createBaseNode)("set", {
captures
}, {
names,
values
}, line, column, tag);
/*
* Optimizes the node when capture is used for a large block of text.
*
* {% set foo %}foo{% endset %} is compiled to $context['foo'] = new Twig_Markup("foo");
*/
if (setNode.attributes.captures) {
const values = setNode.children.values;
if (values.type === "text") {
setNode.children.values = (0, node_1.createNode)({
0: (0, constant_1.createConstantNode)(values.attributes.data, values.line, values.column)
}, values.line, values.column);
setNode.attributes.captures = false;
}
}
return setNode;
};
exports.createSetNode = createSetNode;