29 lines
946 B
1
// Update dependencies in all packages
2
/* eslint-disable no-console */
3
const fs = require("fs");
4
const path = require("path");
5
const child_process = require("child_process");
6
7
const packageToUpdate = process.argv[2];
8
9
function 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
17
function exec(cmd, dir) {
18
child_process.execSync(cmd, { cwd: dir, stdio: "inherit" });
19
}
20
21
for (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
}
30