aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/libcipm/lib/extract.js
diff options
context:
space:
mode:
authorFallenRiteMonk <fallenritemonk@gmail.com>2018-04-05 11:52:34 -0400
committerMyles Borins <mylesborins@google.com>2018-04-05 16:01:07 -0400
commit25a816dcda7b1db0929501acfe13f2fe5119759b (patch)
treed3df4377a11dfb643b5976d2048d9bb4ee527903 /deps/npm/node_modules/libcipm/lib/extract.js
parentb29c36b80746733994257b7380245102bc3c4cd6 (diff)
downloadandroid-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.js53
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)
+ })
+ }
+}