this repo has no description
1// Update dependencies in all packages
2/* eslint-disable no-console */
3const fs = require("fs");
4const path = require("path");
5const child_process = require("child_process");
6
7const packageToUpdate = process.argv[2];
8
9function getDeps(packageJSON) {
10 const ret = {};
11 Object.assign(ret, packageJSON.dependencies || {});
12 Object.assign(ret, packageJSON.devDependencies || {});
13 Object.assign(ret, packageJSON.peerDependencies || {});
14 return ret;
15}
16
17function exec(cmd, dir) {
18 child_process.execSync(cmd, { cwd: dir, stdio: "inherit" });
19}
20
21for (const package of fs.readdirSync("./packages")) {
22 const packageJSON = JSON.parse(fs.readFileSync(path.join("./packages", package, "package.json"), "utf8"));
23
24 const deps = getDeps(packageJSON);
25 if (Object.keys(deps).includes(packageToUpdate)) {
26 console.log(`Updating ${packageToUpdate} in ${package}`);
27 exec(`pnpm update ${packageToUpdate}`, path.join("./packages", package));
28 }
29}