UNPKG

dependency-cruiser

Version:

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

53 lines (45 loc) 1.38 kB
"use strict"; function compareOnSource(pOne, pTwo) { return `${pOne.coreModule ? "1" : "0"}-${pOne.source}` > `${pTwo.coreModule ? "1" : "0"}-${pTwo.source}` ? 1 : -1; } function determineIncidenceType(pFromListEntry) { return pModule => { let lDep = pModule.dependencies.find( pDep => pDep.resolved === pFromListEntry.source ); if (lDep) { return lDep.valid ? { incidence: "true" } : { incidence: lDep.rules[0].severity, rule: `${lDep.rules[0].name}${lDep.rules.length > 1 ? ` (+${lDep.rules.length - 1} others)` : ""}` }; } return { incidence: "false" }; }; } function addIncidences(pFromList) { return (pDependency) => Object.assign( pDependency, { incidences: pFromList.map(pFromListEntry => Object.assign( { to: pFromListEntry.source }, determineIncidenceType(pFromListEntry)(pDependency) ) ) } ); } module.exports = pFromList => pFromList.sort(compareOnSource).map(addIncidences(pFromList));