UNPKG

@wshcmx/cli

Version:

Набор CLI-инструментов предназначен для автоматизации сборки и отслеживания изменений в исходном коде с последующей транспиляцией в синтаксис WebSoftHCM.

29 lines (28 loc) 1.28 kB
import ts from 'typescript'; export function convertTemplateStrings() { return (context) => (sourceFile) => { function visit(node) { if (ts.isTemplateExpression(node)) { let expression; if (node.head.text.length > 0) { expression = ts.factory.createStringLiteral(node.head.text); } for (const span of node.templateSpans) { const visitedExpression = ts.visitNode(span.expression, visit); if (!expression) { expression = visitedExpression; } else { expression = ts.factory.createBinaryExpression(expression, ts.SyntaxKind.PlusToken, visitedExpression); } if (span.literal.text.length > 0) { expression = ts.factory.createBinaryExpression(expression, ts.SyntaxKind.PlusToken, ts.factory.createStringLiteral(span.literal.text)); } } return expression ?? ts.factory.createStringLiteral(''); } return ts.visitEachChild(node, visit, context); } return ts.visitNode(sourceFile, visit); }; }