UNPKG

dependency-cruiser

Version:

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

43 lines (38 loc) 1.15 kB
import validate from "../../../validate/index.mjs"; import aggregateToFolders from "./aggregate-to-folders.mjs"; /** * @param {import("../../../../types/dependency-cruiser.js").IFolder} pFolder * @param {import('../../../../types/dependency-cruiser.js').IOptions} pOptions * @returns */ function validateFolderDependency(pFolder, pOptions) { return (pDependency) => ({ ...pDependency, ...validate.folder(pOptions.ruleSet || {}, pFolder, pDependency), }); } function addFolderDependencyViolations(pOptions) { return (pFolder) => ({ ...pFolder, dependencies: pFolder.dependencies.map( validateFolderDependency(pFolder, pOptions) ), }); } /** * * @param {import('../../../../types/dependency-cruiser.js').IModule[]} pModules * @param {import('../../../../types/dependency-cruiser.js').IOptions} pOptions * @returns {any} */ export default function deriveFolderMetrics(pModules, pOptions) { let lReturnValue = {}; if (pOptions.metrics) { lReturnValue = { folders: aggregateToFolders(pModules).map( addFolderDependencyViolations(pOptions) ), }; } return lReturnValue; }