1234567891011121314151617181920212223242526272829303132 |
- import { readFileSync } from 'node:fs'
- export function getDepsCount(files: string[] = []): Record<string, Record<string, string[]>> {
- const map: Record<string, JSON> = {}
- const depsCounter: Record<string, Record<string, string[]>> = {}
- 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
- }
|