chore: script for diffing circular deps +/-

This commit is contained in:
Kevin Nadro
2025-04-22 10:13:48 -05:00
parent e330059e99
commit 7fc61110f6
2 changed files with 59 additions and 0 deletions

View File

@ -114,6 +114,7 @@
"circular-deps": "dpdm --no-warning --no-tree -T --skip-dynamic-imports=circular src/index.tsx", "circular-deps": "dpdm --no-warning --no-tree -T --skip-dynamic-imports=circular src/index.tsx",
"circular-deps:overwrite": "npm run circular-deps | sed '$d' | grep -v '^npm run' > known-circular.txt", "circular-deps:overwrite": "npm run circular-deps | sed '$d' | grep -v '^npm run' > known-circular.txt",
"circular-deps:diff": "./scripts/diff-circular-deps.sh", "circular-deps:diff": "./scripts/diff-circular-deps.sh",
"circular-deps:diff:nodejs": "npm run circular-deps:diff || node ./scripts/diff.js",
"files:set-version": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json", "files:set-version": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json",
"files:set-notes": "./scripts/set-files-notes.sh", "files:set-notes": "./scripts/set-files-notes.sh",
"files:flip-to-nightly": "./scripts/flip-files-to-nightly.sh", "files:flip-to-nightly": "./scripts/flip-files-to-nightly.sh",

58
scripts/diff.js Normal file
View File

@ -0,0 +1,58 @@
const fs = require('fs')
const latestRun = fs.readFileSync('/tmp/circular-deps.txt','utf-8')
const knownCircular = fs.readFileSync('./known-circular.txt','utf-8')
function parseLine (line) {
let num = null
let depPath = null
const res = line.split(")",2)
if (res.length === 2) {
// should be a dep line
num = parseInt(res[0])
depPath = res[1]
}
return {
num,
depPath
}
}
function makeDependencyHash (file) {
const deps = {}
file.split("\n").forEach((line)=>{
const {num, depPath} = parseLine(line)
if (depPath && !isNaN(num)) {
deps[depPath] = 1
}
})
return deps
}
const latestRunDepHash = makeDependencyHash(latestRun)
const knownDepHash = makeDependencyHash(knownCircular)
const dup1 = JSON.parse(JSON.stringify(latestRunDepHash))
const dup2 = JSON.parse(JSON.stringify(knownDepHash))
Object.keys(knownDepHash).forEach((key)=>{
delete dup1[key]
})
Object.keys(latestRunDepHash).forEach((key)=>{
delete dup2[key]
})
console.log("diff.js - line item diff")
console.log(" ")
console.log("Added(+)")
Object.keys(dup1).forEach((dep, index)=>{
console.log(`${index+1}) ${dep}`)
})
console.log(" ")
console.log("Removed(-)")
if (Object.keys(dup2).length === 0) {
console.log("None")
}
Object.keys(dup2).forEach((dep, index)=>{
console.log(`${index+1}) ${dep}`)
})