knip
Version:
Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects
26 lines (25 loc) • 780 B
JavaScript
import ts from 'typescript';
import { getPropertyValues } from '../../typescript/ast-helpers.js';
export const getSrcDir = (sourceFile) => {
const srcDir = 'src';
function visit(node) {
if (ts.isObjectLiteralExpression(node)) {
const values = getPropertyValues(node, 'srcDir');
if (values.size > 0) {
return Array.from(values)[0];
}
}
let result;
ts.forEachChild(node, innerNode => {
const innerValue = visit(innerNode);
if (innerValue) {
result = innerValue;
return true;
}
return false;
});
return result;
}
const foundValue = visit(sourceFile);
return foundValue ?? srcDir;
};