Created
January 31, 2022 15:03
-
-
Save zFernand0/9d23c7360db0882035c8268f9b66b21e to your computer and use it in GitHub Desktop.
Comparing packages in multiple SW files based on integrity and other items
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const ci = require("./cli-installed-next.json"); | |
| const gh = require("./cli-github-next.json"); | |
| const cv = require("./cli-verdaccio-next.json"); | |
| const filterPkgs = (obj, str) => { | |
| const ret = []; | |
| for (const pkg of Object.keys(obj.packages)) { | |
| if (pkg === "" || pkg.startsWith("__tests__")) continue; | |
| if (pkg === "node_modules/@zowe/cli") continue; | |
| if (obj.packages[pkg].dev) continue; | |
| ret.push({name: pkg, obj: obj.packages[pkg]}); | |
| } | |
| ret.sort((a, b) => a.name > b.name); | |
| console.log("Package count in", str, ":\t", ret.length); | |
| return ret; | |
| } | |
| const ciPkgs = filterPkgs(ci, "<installed version>"); | |
| const ghPkgs = filterPkgs(gh, "<github version>"); | |
| const cvPkgs = filterPkgs(cv, "<verdaccio version>"); | |
| const matchPkgs = (a, b) => { | |
| return a.obj.integrity === b.obj.integrity || | |
| a.obj.resolved === b.obj.resolved || | |
| a.name.indexOf("for-zowe-sdk") >= 0 || | |
| (a.obj.version === b.obj.version && ( | |
| a.name === b.name || b.name.indexOf(a.name.split("/").slice(-1)[0]) >= 0 | |
| )); | |
| } | |
| const cvMiss = []; | |
| const ghMiss = []; | |
| ciPkgs.forEach((pkg) => { | |
| if (!cvPkgs.find((p) => matchPkgs(pkg, p))) cvMiss.push(pkg); | |
| if (!ghPkgs.find((p) => matchPkgs(pkg, p))) ghMiss.push(pkg); | |
| }); | |
| console.log(""); | |
| console.log("Package integrity missed in <verdaccio version>:", cvMiss); | |
| console.log("Package integrity missed in <github version>:\t", ghMiss); | |
| const cvMissPkgs = []; | |
| for(const pkg in cvPkgs) { | |
| if (ciPkgs.find((p) => cvPkgs[pkg].name === p.name )) continue; | |
| cvMissPkgs.push(cvPkgs[pkg]); | |
| }; | |
| console.log(""); | |
| console.log("Duplicate dependencies in <verdaccio version>\t", cvMissPkgs.length); | |
| const ghMissPkgs = []; | |
| ghPkgs.forEach((pkg) => { | |
| if (!ciPkgs.find((p) => pkg.name === p.name)) ghMissPkgs.push(pkg); | |
| }); | |
| console.log("Duplicate dependencies in <github version>\t", ghMissPkgs.length); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment