#!/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); }