aboutsummaryrefslogtreecommitdiff
path: root/npmPackages/_scripts/pindeps.js
diff options
context:
space:
mode:
Diffstat (limited to 'npmPackages/_scripts/pindeps.js')
-rw-r--r--npmPackages/_scripts/pindeps.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/npmPackages/_scripts/pindeps.js b/npmPackages/_scripts/pindeps.js
new file mode 100644
index 0000000..3545957
--- /dev/null
+++ b/npmPackages/_scripts/pindeps.js
@@ -0,0 +1,27 @@
+const process = require('process');
+const path = require('path');
+
+const {
+ pipeThrough,
+ readPackage
+} = require('./package.js');
+
+function pinDependencies(pkg, done) {
+ const deps = Object.keys(pkg.dependencies || {});
+ const readLocalPkg = (n) => readPackage(path.join('node_modules', n));
+
+ Promise.all(deps.map(readLocalPkg)).then((pkgs) => {
+ const pinned = pkgs.reduce((ds, d) => {
+ ds[d.info.name] = `^${d.info.version}`;
+ return ds;
+ }, {});
+
+ pkg.dependencies = pinned;
+ done(pkg);
+ }).catch((err) => {
+ console.error(err);
+ process.exit(1);
+ });
+}
+
+pipeThrough(pinDependencies); \ No newline at end of file