UNPKG

knip

Version:

Find unused files, dependencies and exports in your TypeScript and JavaScript projects

27 lines (26 loc) 924 B
import { join } from './path.js'; const types = ['peerDependencies', 'devDependencies', 'optionalDependencies', 'dependencies']; export function createWorkspaceGraph(cwd, wsNames, wsPkgNames, wsPackages) { const graph = {}; const getWorkspaceDirs = (pkg, name) => { const dirs = new Set(); for (const type of types) { if (pkg.manifest[type]) { for (const pkgName in pkg.manifest[type]) { if (wsPkgNames.has(pkgName)) { const wsPackage = wsPackages.get(name); if (wsPackage) dirs.add(wsPackage.dir); } } } } return dirs; }; for (const name of wsNames) { const pkg = wsPackages.get(name); if (pkg) graph[join(cwd, name)] = getWorkspaceDirs(pkg, name); } return graph; }