UNPKG

dependency-cruiser

Version:

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

38 lines (34 loc) 1.26 kB
import analyzeModules from "./analyze-modules.mjs"; import aggregateToFolders from "./derive/folders/index.mjs"; import summarize from "./summarize/index.mjs"; import { bus } from "#utl/bus.mjs"; /** * Enriches the passed modules with things like cycle detection, validations, * metrics, folders and reachability & dependents analysis. * * Also adds a summary to the cruise result with common stats and the options * used in the cruise, so consumers of the cruise result (reporters, depcruise-fmt, * caching) can use that. * * @param {import("../../types/dependency-cruiser.js").IModule[]} pModules * @param {import("../../types/dependency-cruiser.js").ICruiseOptions} pOptions * @param {string[]} pFileAndDirectoryArray * @returns {import("../../types/dependency-cruiser.js").ICruiseResult} */ export default function analyze(pModules, pOptions, pFileAndDirectoryArray) { const lModules = analyzeModules(pModules, pOptions); bus.info("analyze: aggregate to folders"); const lFolders = aggregateToFolders(lModules, pOptions); bus.info("analyze: summary"); const lReturnValue = { modules: lModules, ...lFolders, summary: summarize( lModules, pOptions, pFileAndDirectoryArray, lFolders.folders, ), }; return lReturnValue; }