chore: script for diffing circular deps +/-
This commit is contained in:
@ -114,6 +114,7 @@
|
||||
"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: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-notes": "./scripts/set-files-notes.sh",
|
||||
"files:flip-to-nightly": "./scripts/flip-files-to-nightly.sh",
|
||||
|
58
scripts/diff.js
Normal file
58
scripts/diff.js
Normal 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}`)
|
||||
})
|
Reference in New Issue
Block a user