@literals/parser
Version:
Parse template literals from code
26 lines • 927 B
JavaScript
import typescript from './strategies/typescript.js';
export function parseLiterals(source, options = {}) {
const strategy = {
...typescript,
...(options.strategy || {}),
};
const literals = [];
const visitedTemplates = [];
strategy.walkNodes(strategy.getRootNode(source, options.fileName), (node) => {
if (strategy.isTaggedTemplate(node)) {
const template = strategy.getTaggedTemplateTemplate(node);
visitedTemplates.push(template);
literals.push({
tag: strategy.getTagText(node),
parts: strategy.getTemplateParts(template),
});
}
else if (strategy.isTemplate(node) && !visitedTemplates.includes(node)) {
literals.push({
parts: strategy.getTemplateParts(node),
});
}
});
return literals;
}
//# sourceMappingURL=parseLiterals.js.map