diff options
Diffstat (limited to 'npmPackages/_scripts/pindeps.js')
-rw-r--r-- | npmPackages/_scripts/pindeps.js | 27 |
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 |