diff options
Diffstat (limited to 'deps/npm/node_modules/pacote/lib/fetchers/file.js')
-rw-r--r-- | deps/npm/node_modules/pacote/lib/fetchers/file.js | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/deps/npm/node_modules/pacote/lib/fetchers/file.js b/deps/npm/node_modules/pacote/lib/fetchers/file.js deleted file mode 100644 index a58e329130..0000000000 --- a/deps/npm/node_modules/pacote/lib/fetchers/file.js +++ /dev/null @@ -1,78 +0,0 @@ -'use strict' - -const BB = require('bluebird') - -const cacache = require('cacache') -const Fetcher = require('../fetch') -const fs = require('fs') -const pipe = BB.promisify(require('mississippi').pipe) -const through = require('mississippi').through - -const readFileAsync = BB.promisify(fs.readFile) -const statAsync = BB.promisify(fs.stat) - -const MAX_BULK_SIZE = 2 * 1024 * 1024 // 2MB - -// `file` packages refer to local tarball files. -const fetchFile = module.exports = Object.create(null) - -Fetcher.impl(fetchFile, { - packument (spec, opts) { - return BB.reject(new Error('Not implemented yet')) - }, - - manifest (spec, opts) { - // We can't do much here. `finalizeManifest` will take care of - // calling `tarball` to fill out all the necessary details. - return BB.resolve(null) - }, - - // All the heavy lifting for `file` packages is done here. - // They're never cached. We just read straight out of the file. - // TODO - maybe they *should* be cached? - tarball (spec, opts) { - const src = spec._resolved || spec.fetchSpec - const stream = through() - statAsync(src).then(stat => { - if (spec._resolved) { stream.emit('manifest', spec) } - if (stat.size <= MAX_BULK_SIZE) { - // YAY LET'S DO THING IN BULK - return readFileAsync(src).then(data => { - if (opts.cache) { - return cacache.put( - opts.cache, `pacote:tarball:file:${src}`, data, { - integrity: opts.integrity - } - ).then(integrity => ({ data, integrity })) - } else { - return { data } - } - }).then(info => { - if (info.integrity) { stream.emit('integrity', info.integrity) } - stream.write(info.data, () => { - stream.end() - }) - }) - } else { - let integrity - const cacheWriter = !opts.cache - ? BB.resolve(null) - : (pipe( - fs.createReadStream(src), - cacache.put.stream(opts.cache, `pacote:tarball:${src}`, { - integrity: opts.integrity - }).on('integrity', d => { integrity = d }) - )) - return cacheWriter.then(() => { - if (integrity) { stream.emit('integrity', integrity) } - return pipe(fs.createReadStream(src), stream) - }) - } - }).catch(err => stream.emit('error', err)) - return stream - }, - - fromManifest (manifest, spec, opts) { - return this.tarball(manifest || spec, opts) - } -}) |