dependency-cruiser
Version:
Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
45 lines (42 loc) • 1.65 kB
JavaScript
import addRuleSetUsed from "./add-rule-set-used.mjs";
import summarizeModules from "./summarize-modules.mjs";
import summarizeFolders from "./summarize-folders.mjs";
import summarizeOptions from "./summarize-options.mjs";
import {
getViolationStats,
getModulesCruised,
getDependenciesCruised,
} from "./get-stats.mjs";
import { compareViolations } from "#graph-utl/compare.mjs";
/**
*
* @param {import("../../../types/cruise-result.mjs").IModule[]} pModules -
* cruised modules that have been enriched with mandatory attributes &
* have been validated against rules as passed in the options
* @param {import("../../../types/options.mjs").IStrictCruiseOptions} pOptions -
* @param {string[]} pFileDirectoryArray -
* the files/ directories originally passed to be cruised
* @param {import("../../../types/dependency-cruiser.js").IFolder[]} pFolders -
* the pModules collapsed to folders, with their own metrics & deps
*
* @returns {import("../../../types/cruise-result.mjs").ISummary} -
* a summary of the found modules, dependencies and any violations
*/
export default function summarize(
pModules,
pOptions,
pFileDirectoryArray,
pFolders,
) {
const lViolations = summarizeModules(pModules, pOptions.ruleSet)
.concat(summarizeFolders(pFolders || [], pOptions.ruleSet))
.sort(compareViolations);
return {
violations: lViolations,
...getViolationStats(lViolations),
totalCruised: getModulesCruised(pModules),
totalDependenciesCruised: getDependenciesCruised(pModules),
...summarizeOptions(pFileDirectoryArray, pOptions),
...(pOptions.ruleSet ? { ruleSetUsed: addRuleSetUsed(pOptions) } : {}),
};
}