UNPKG

angular-estree-parser

Version:

A parser that converts Angular source code into an ESTree-compatible form

33 lines (32 loc) 1.12 kB
//#region src/ast-transform/transforms/transform-template-literal.ts const visitTaggedTemplateLiteral = (node, transformer) => ({ type: "TaggedTemplateExpression", tag: transformer.transformChild(node.tag), quasi: transformer.transformChild(node.template) }); const visitTemplateLiteral = (node, transformer) => ({ type: "TemplateLiteral", quasis: transformer.transformChildren(node.elements), expressions: transformer.transformChildren(node.expressions) }); const visitTemplateLiteralElement = (node, transformer) => { const [parent] = transformer.ancestors; const { elements } = parent; const elementIndex = elements.indexOf(node); const isFirst = elementIndex === 0; const isLast = elementIndex === elements.length - 1; const end = node.sourceSpan.end - (isLast ? 1 : 0); const start = node.sourceSpan.start + (isFirst ? 1 : 0); const raw = transformer.text.slice(start, end); return { type: "TemplateElement", value: { cooked: node.text, raw }, tail: isLast, range: [start, end] }; }; //#endregion export { visitTaggedTemplateLiteral, visitTemplateLiteral, visitTemplateLiteralElement };