UNPKG

knip

Version:

Find and fix unused dependencies, exports and files in your TypeScript and JavaScript projects

38 lines (37 loc) 1.18 kB
import ts from 'typescript'; import { getPropertyValues } from "../../typescript/ast-helpers.js"; const findCallArg = (sourceFile, fnName) => { let result; function visit(node) { if (ts.isCallExpression(node)) { const callee = node.expression; if (ts.isIdentifier(callee) && callee.text === fnName) { const arg = node.arguments[0]; if (arg && ts.isObjectLiteralExpression(arg)) result = arg; } } if (!result) ts.forEachChild(node, visit); } visit(sourceFile); return result; }; export const getSrcDir = (sourceFile) => { const arg = findCallArg(sourceFile, 'qwikVite'); if (arg) { const values = getPropertyValues(arg, 'srcDir'); if (values.size > 0) return Array.from(values)[0]; } return 'src'; }; export const getRoutesDirs = (sourceFile, srcDir) => { const arg = findCallArg(sourceFile, 'qwikCity'); if (arg) { const values = getPropertyValues(arg, 'routesDir'); if (values.size > 0) return Array.from(values); } return [`${srcDir}/routes`]; };