import { readFileSync } from 'node:fs' export function getDepsCount(files: string[] = []): Record> { const map: Record = {} const depsCounter: Record> = {} for (const file of files) { const content = JSON.parse(readFileSync(file).toString('utf-8')) map[file] = content const deps = content.dependencies ?? {} const devDeps = content.devDependencies ?? {} const merged = { ...deps, ...devDeps } Object.keys(merged) .sort() .map((pkg) => { const pkgVersion = merged[pkg] if (!depsCounter[pkg]) { depsCounter[pkg] = { [pkgVersion]: [file] } return } if (!depsCounter[pkg][pkgVersion]) { depsCounter[pkg][pkgVersion] = [file] return } depsCounter[pkg][pkgVersion] = [...depsCounter[pkg][pkgVersion], file] }) } return depsCounter }