UNPKG

twing

Version:

First-class Twig engine for Node.js

40 lines (39 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createExtendsTagHandler = void 0; /** * Loops over each item of a sequence. * * <pre> * <ul> * {% for user in users %} * <li>{{ user.username|e }}</li> * {% endfor %} * </ul> * </pre> */ const parsing_1 = require("../error/parsing"); const createExtendsTagHandler = () => { const tag = 'extends'; return { tag, initialize: (parser) => { return (token, stream) => { const { line, column } = token; if (parser.peekBlockStack()) { throw (0, parsing_1.createParsingError)('Cannot use "extend" in a block.', { line, column }, stream.source); } else if (!parser.isMainScope()) { throw (0, parsing_1.createParsingError)('Cannot use "extend" in a macro.', { line, column }, stream.source); } if (parser.parent !== null) { throw (0, parsing_1.createParsingError)('Multiple extends tags are forbidden.', { line, column }, stream.source); } parser.parent = parser.parseExpression(stream); stream.expect("TAG_END"); return null; }; } }; }; exports.createExtendsTagHandler = createExtendsTagHandler;