diff --git a/scripts/set-package-version.js b/scripts/set-package-version.js new file mode 100644 index 000000000..d5a3b3e7f --- /dev/null +++ b/scripts/set-package-version.js @@ -0,0 +1,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); +}