diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2019-09-27 16:05:42 +0200 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2019-10-02 07:32:32 +0200 |
commit | 0215671c6aab24e1885074761f44c502f0bb00e2 (patch) | |
tree | 14821547641342b35644f9d63a63a46bab104253 /npmPackages/_scripts/pindeps.js | |
download | npm.nix-0215671c6aab24e1885074761f44c502f0bb00e2.tar.gz |
Initial PoC
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 |