diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/bump.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/bump.js b/scripts/bump.js new file mode 100755 index 0000000..2a4d592 --- /dev/null +++ b/scripts/bump.js @@ -0,0 +1,42 @@ +#! /usr/bin/env node + +const fs = require('fs'); +const path = require('path'); + +const lernaConfig = require('../lerna.json'); + +// List all the packages +const PACKAGES_DIR = path.resolve(__dirname, '../packages'); +const packages = fs.readdirSync(PACKAGES_DIR); + +function updateDependencies(dependencies) { + if (!dependencies) { + return; + } + + Object.keys(dependencies).map((key) => { + if (!packages.includes(key)) { + return; + } + + dependencies[key] = lernaConfig.version; + }); +} + +packages.forEach((name) => { + // Avoid .DS_Store + if (name[0] === '.') { + return; + } + + const pkgPath = path.resolve(PACKAGES_DIR, name, 'package.json'); + const pkg = require(pkgPath); + + pkg.version = lernaConfig.version; + updateDependencies(pkg.dependencies); + updateDependencies(pkg.devDependencies); + + const json = JSON.stringify(pkg, null, 2); + + fs.writeFileSync(pkgPath, `${json}\n`, 'utf-8'); +}); |