diff options
author | FallenRiteMonk <fallenritemonk@gmail.com> | 2018-04-05 11:52:34 -0400 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2018-04-05 16:01:07 -0400 |
commit | 25a816dcda7b1db0929501acfe13f2fe5119759b (patch) | |
tree | d3df4377a11dfb643b5976d2048d9bb4ee527903 /deps/npm/node_modules/libcipm/lib/extract.js | |
parent | b29c36b80746733994257b7380245102bc3c4cd6 (diff) | |
download | android-node-v8-25a816dcda7b1db0929501acfe13f2fe5119759b.tar.gz android-node-v8-25a816dcda7b1db0929501acfe13f2fe5119759b.tar.bz2 android-node-v8-25a816dcda7b1db0929501acfe13f2fe5119759b.zip |
deps: upgrade npm to 5.8.0
PR-URL: https://github.com/nodejs/node/pull/19560
Fixes: https://github.com/nodejs/node/issues/19271
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/libcipm/lib/extract.js')
-rw-r--r-- | deps/npm/node_modules/libcipm/lib/extract.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/deps/npm/node_modules/libcipm/lib/extract.js b/deps/npm/node_modules/libcipm/lib/extract.js new file mode 100644 index 0000000000..1967308112 --- /dev/null +++ b/deps/npm/node_modules/libcipm/lib/extract.js @@ -0,0 +1,53 @@ +'use strict' + +const BB = require('bluebird') + +const npa = require('npm-package-arg') +const workerFarm = require('worker-farm') + +const extractionWorker = require('./worker.js') +const WORKER_PATH = require.resolve('./worker.js') + +module.exports = { + startWorkers () { + this._workers = workerFarm({ + maxConcurrentCallsPerWorker: 20, + maxRetries: 1 + }, WORKER_PATH) + }, + + stopWorkers () { + workerFarm.end(this._workers) + }, + + child (name, child, childPath, config, opts) { + const spec = npa.resolve(name, child.version) + const childOpts = config.toPacote(Object.assign({ + integrity: child.integrity, + resolved: child.resolved + }, { + dirPacker: opts.dirPacker + })) + const args = [spec, childPath, childOpts] + return BB.fromNode((cb) => { + let launcher = extractionWorker + let msg = args + const spec = typeof args[0] === 'string' ? npa(args[0]) : args[0] + childOpts.loglevel = opts.log.level + if (spec.registry || spec.type === 'remote') { + // We can't serialize these options + childOpts.config = null + childOpts.log = null + childOpts.dirPacker = null + // workers will run things in parallel! + launcher = this._workers + try { + msg = JSON.stringify(msg) + } catch (e) { + return cb(e) + } + } + launcher(msg, cb) + }) + } +} |