liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env node
 
const path = require("path");
const fs = require("fs-extra");
const should = require("should");
 
const rootPackage = path.join(__dirname,"..","package.json");
const packages = [
    "node-red",
    "@node-red/editor-api",
    "@node-red/editor-client",
    "@node-red/nodes",
    "@node-red/registry",
    "@node-red/runtime",
    "@node-red/util"
];
function updatePackage(packageFile, version) {
    let modulePackage = require(packageFile);
    modulePackage.version = version;
    let dependencies = Object.keys(modulePackage.dependencies||{});
    dependencies.forEach(module => {
        if (/^@node-red\//.test(module)) {
            modulePackage.dependencies[module] = version;
        }
    });
    return fs.writeJSON(packageFile,modulePackage,{spaces:4});
}
 
const targetVersion = process.argv[2];
 
if (/^\d+\.\d+\.\d+(-.*)?/.test(targetVersion)) {
    let promises = [];
    promises.push(updatePackage(rootPackage,targetVersion));
    packages.forEach(package => {
        promises.push(updatePackage(path.join(__dirname,"../packages/node_modules",package,"package.json"),targetVersion))
    });
    Promise.all(promises).catch(e => {
        console.log(e);
        process.exit(1);
    })
} else {
    console.log("Invalid target version");
    process.exit(1);
}