dependency-cruiser
Version:
Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
37 lines (33 loc) • 766 B
JavaScript
import { calculateInstability, metricsAreCalculable } from "../module-utl.mjs";
export function addInstabilityMetric(pModule) {
return {
...pModule,
...(metricsAreCalculable(pModule)
? {
instability: calculateInstability(
pModule.dependencies.length,
pModule.dependents.length,
),
}
: {}),
};
}
function addInstabilityToDependency(pIndexedModules) {
return (pDependency) => ({
...pDependency,
instability:
(pIndexedModules.findVertexByName(pDependency.resolved) || {})
.instability || 0,
});
}
export function deNormalizeInstabilityMetricsToDependencies(
pModule,
pIndexedModules,
) {
return {
...pModule,
dependencies: pModule.dependencies.map(
addInstabilityToDependency(pIndexedModules),
),
};
}