summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/pacote/extract.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/pacote/extract.js')
-rw-r--r--deps/npm/node_modules/pacote/extract.js27
1 files changed, 20 insertions, 7 deletions
diff --git a/deps/npm/node_modules/pacote/extract.js b/deps/npm/node_modules/pacote/extract.js
index 01036519a9..4312f1a9aa 100644
--- a/deps/npm/node_modules/pacote/extract.js
+++ b/deps/npm/node_modules/pacote/extract.js
@@ -4,8 +4,8 @@ const BB = require('bluebird')
const cacache = require('cacache')
const extractStream = require('./lib/extract-stream')
+const mkdirp = BB.promisify(require('mkdirp'))
const npa = require('npm-package-arg')
-const pipe = BB.promisify(require('mississippi').pipe)
const optCheck = require('./lib/util/opt-check')
const retry = require('promise-retry')
const rimraf = BB.promisify(require('rimraf'))
@@ -59,21 +59,34 @@ function extract (spec, dest, opts) {
}
function extractByDigest (start, spec, dest, opts) {
- const xtractor = extractStream(dest, opts)
- const cached = cacache.get.stream.byDigest(opts.cache, opts.integrity, opts)
- return pipe(cached, xtractor).then(() => {
+ return mkdirp(dest).then(() => {
+ const xtractor = extractStream(dest, opts)
+ const cached = cacache.get.stream.byDigest(opts.cache, opts.integrity, opts)
+ cached.pipe(xtractor)
+ return new BB((resolve, reject) => {
+ cached.on('error', reject)
+ xtractor.on('error', reject)
+ xtractor.on('close', resolve)
+ })
+ }).then(() => {
opts.log.silly('pacote', `${spec} extracted to ${dest} by content address ${Date.now() - start}ms`)
})
}
let fetch
function extractByManifest (start, spec, dest, opts) {
- const xtractor = extractStream(dest, opts)
- return BB.resolve(null).then(() => {
+ return mkdirp(dest).then(() => {
+ const xtractor = extractStream(dest, opts)
if (!fetch) {
fetch = require('./lib/fetch')
}
- return pipe(fetch.tarball(spec, opts), xtractor)
+ const tardata = fetch.tarball(spec, opts)
+ tardata.pipe(xtractor)
+ return new BB((resolve, reject) => {
+ tardata.on('error', reject)
+ xtractor.on('error', reject)
+ xtractor.on('close', resolve)
+ })
}).then(() => {
opts.log.silly('pacote', `${spec} extracted in ${Date.now() - start}ms`)
})