summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/bump.js42
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');
+});