dependency-cruiser
Version:
Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
44 lines (39 loc) • 1.09 kB
JavaScript
import { join } from "node:path";
import extractES6Deps from "./extract-es6-deps.mjs";
import extractCommonJSDeps from "./extract-cjs-deps.mjs";
import extractAMDDeps from "./extract-amd-deps.mjs";
import { getASTCached } from "./parse.mjs";
import extractStats from "./extract-stats.mjs";
export function extract(
{
baseDir,
moduleSystems,
exoticRequireStrings,
detectProcessBuiltinModuleCalls,
},
pFileName,
pTranspileOptions,
) {
let lDependencies = [];
const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
if (moduleSystems.includes("cjs")) {
extractCommonJSDeps(
lAST,
lDependencies,
"cjs",
exoticRequireStrings,
detectProcessBuiltinModuleCalls,
);
}
if (moduleSystems.includes("es6")) {
extractES6Deps(lAST, lDependencies);
}
if (moduleSystems.includes("amd")) {
extractAMDDeps(lAST, lDependencies, exoticRequireStrings);
}
return lDependencies;
}
export function getStats({ baseDir }, pFileName, pTranspileOptions) {
const lAST = getASTCached(join(baseDir, pFileName), pTranspileOptions);
return extractStats(lAST);
}