dependency-cruiser
Version:
Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
38 lines (34 loc) • 1.05 kB
JavaScript
import { join } from "node:path";
import { isTypeScriptCompatible } from "../helpers.mjs";
import extractTypeScriptDeps from "./extract-typescript-deps.mjs";
import { getASTCached, isAvailable } from "./parse.mjs";
import extractStats from "./extract-stats.mjs";
export function shouldUse({ tsPreCompilationDeps, parser }, pFileName) {
return (
(tsPreCompilationDeps || parser === "tsc") &&
isAvailable() &&
isTypeScriptCompatible(pFileName)
);
}
export function extract(
{
baseDir,
exoticRequireStrings,
moduleSystems,
detectJSDocImports,
detectProcessBuiltinModuleCalls,
},
pFileName,
pTranspileOptions,
) {
return extractTypeScriptDeps(
getASTCached(join(baseDir, pFileName), pTranspileOptions),
exoticRequireStrings,
detectJSDocImports,
detectProcessBuiltinModuleCalls,
).filter(({ moduleSystem }) => moduleSystems.includes(moduleSystem));
}
export function getStats({ baseDir }, pFileName, pTranspileOptions) {
const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
return extractStats(lAST);
}