tsc-template
Version:
Utility to build TypeScript AST from a string, similar to @babel/template
20 lines • 636 B
JavaScript
import { forEachChild } from 'typescript';
import { extractCodePart } from './extractCodePart.js';
function isInjectedNode(node) {
return node.pos < 0 || node.end < 0;
}
export function findBestNode(file) {
const codePart = extractCodePart(file.getText());
let latest = file;
const find = (node) => {
if (!isInjectedNode(node) && node.getText(file) === codePart) {
latest = node;
}
else if (latest !== file) {
return latest;
}
return forEachChild(node, find);
};
return forEachChild(file, find) ?? latest;
}
//# sourceMappingURL=findBestNode.js.map