UNPKG

twing

Version:

First-class Twig engine for Node.js

33 lines (32 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createApplyTagHandler = void 0; const apply_1 = require("../node/apply"); const array_1 = require("../node/expression/array"); const constant_1 = require("../node/expression/constant"); const createApplyTagHandler = () => { const tag = 'apply'; const tokenHandler = { tag, initialize: (parser) => { return (token, stream) => { const { line, column } = token; const filterDefinitions = parser.parseFilterDefinitions(stream); stream.expect("TAG_END"); let body = parser.subparse(stream, tag, (token) => { return token.test("NAME", 'endapply'); }); stream.next(); stream.expect("TAG_END"); return (0, apply_1.createApplyNode)((0, array_1.createArrayNode)(filterDefinitions.map(({ name, arguments: filterArgument }) => { return { key: (0, constant_1.createConstantNode)(name, line, column), value: filterArgument }; }), line, column), body, line, column); }; } }; return tokenHandler; }; exports.createApplyTagHandler = createApplyTagHandler;