UNPKG

dependency-cruiser

Version:

Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.

40 lines (35 loc) 1.66 kB
import { bus } from "../utl/bus.mjs"; import addFocus from "../graph-utl/add-focus.mjs"; import IndexedModuleGraph from "../graph-utl/indexed-module-graph.mjs"; import deriveCycles from "./derive/circular.mjs"; import deriveOrphans from "./derive/orphan/index.mjs"; import addDependents from "./derive/dependents/index.mjs"; import deriveReachable from "./derive/reachable.mjs"; import addValidations from "./add-validations.mjs"; import softenKnownViolations from "./soften-known-violations.mjs"; import deriveModuleMetrics from "./derive/metrics/index.mjs"; export default function enrichModules(pModules, pOptions) { bus.info("analyzing: cycles"); const lIndexedModules = new IndexedModuleGraph(pModules); let lModules = deriveCycles(pModules, lIndexedModules, { pSourceAttribute: "source", pDependencyName: "resolved", }); bus.info("analyzing: dependents"); lModules = addDependents(lModules); bus.info("analyzing: orphans"); lModules = deriveOrphans(lModules); bus.info("analyzing: reachables"); lModules = deriveReachable(lModules, pOptions.ruleSet); bus.info("analyzing: module metrics"); lModules = deriveModuleMetrics(lModules, pOptions); bus.info("analyzing: add focus (if any)"); lModules = addFocus(lModules, pOptions.focus); // when validate === false we might want to skip the addValidations. // We don't at this time, however, as "valid" is a mandatory // attribute (to simplify reporter logic) bus.info("analyzing: validations"); lModules = addValidations(lModules, pOptions.ruleSet, pOptions.validate); lModules = softenKnownViolations(lModules, pOptions.knownViolations); return lModules; }