summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/cacache/get.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/cacache/get.js')
-rw-r--r--deps/npm/node_modules/cacache/get.js51
1 files changed, 50 insertions, 1 deletions
diff --git a/deps/npm/node_modules/cacache/get.js b/deps/npm/node_modules/cacache/get.js
index 7bafe128e4..008cb83a9e 100644
--- a/deps/npm/node_modules/cacache/get.js
+++ b/deps/npm/node_modules/cacache/get.js
@@ -63,6 +63,55 @@ function getData (byDigest, cache, key, opts) {
})
}
+module.exports.sync = function get (cache, key, opts) {
+ return getDataSync(false, cache, key, opts)
+}
+module.exports.sync.byDigest = function getByDigest (cache, digest, opts) {
+ return getDataSync(true, cache, digest, opts)
+}
+function getDataSync (byDigest, cache, key, opts) {
+ opts = GetOpts(opts)
+ const memoized = (
+ byDigest
+ ? memo.get.byDigest(cache, key, opts)
+ : memo.get(cache, key, opts)
+ )
+ if (memoized && opts.memoize !== false) {
+ return byDigest ? memoized : {
+ metadata: memoized.entry.metadata,
+ data: memoized.data,
+ integrity: memoized.entry.integrity,
+ size: memoized.entry.size
+ }
+ }
+ const entry = !byDigest && index.find.sync(cache, key, opts)
+ if (!entry && !byDigest) {
+ throw new index.NotFoundError(cache, key)
+ }
+ const data = read.sync(
+ cache,
+ byDigest ? key : entry.integrity,
+ {
+ integrity: opts.integrity,
+ size: opts.size
+ }
+ )
+ const res = byDigest
+ ? data
+ : {
+ metadata: entry.metadata,
+ data: data,
+ size: entry.size,
+ integrity: entry.integrity
+ }
+ if (opts.memoize && byDigest) {
+ memo.put.byDigest(cache, key, res, opts)
+ } else if (opts.memoize) {
+ memo.put(cache, entry, res.data, opts)
+ }
+ return res
+}
+
module.exports.stream = getStream
function getStream (cache, key, opts) {
opts = GetOpts(opts)
@@ -113,7 +162,7 @@ function getStream (cache, key, opts) {
memoStream,
stream
)
- }, err => stream.emit('error', err))
+ }).catch(err => stream.emit('error', err))
return stream
}