Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/cacache/get.js')
-rw-r--r--node_modules/cacache/get.js240
1 files changed, 112 insertions, 128 deletions
diff --git a/node_modules/cacache/get.js b/node_modules/cacache/get.js
index fe710bbd6..4e905e7cf 100644
--- a/node_modules/cacache/get.js
+++ b/node_modules/cacache/get.js
@@ -1,119 +1,112 @@
'use strict'
-const util = require('util')
+const Collect = require('minipass-collect')
+const Minipass = require('minipass')
+const Pipeline = require('minipass-pipeline')
const fs = require('fs')
+const util = require('util')
+
const index = require('./lib/entry-index')
const memo = require('./lib/memoization')
const read = require('./lib/content/read')
-const Minipass = require('minipass')
-const Collect = require('minipass-collect')
-const Pipeline = require('minipass-pipeline')
-
const writeFile = util.promisify(fs.writeFile)
-module.exports = function get (cache, key, opts) {
- return getData(false, cache, key, opts)
-}
-module.exports.byDigest = function getByDigest (cache, digest, opts) {
- return getData(true, cache, digest, opts)
-}
-
-function getData (byDigest, cache, key, opts = {}) {
+function getData (cache, key, opts = {}) {
const { integrity, memoize, size } = opts
- const memoized = byDigest
- ? memo.get.byDigest(cache, key, opts)
- : memo.get(cache, key, opts)
+ const memoized = memo.get(cache, key, opts)
if (memoized && memoize !== false) {
- return Promise.resolve(
- byDigest
- ? memoized
- : {
- metadata: memoized.entry.metadata,
- data: memoized.data,
- integrity: memoized.entry.integrity,
- size: memoized.entry.size,
- }
- )
+ return Promise.resolve({
+ metadata: memoized.entry.metadata,
+ data: memoized.data,
+ integrity: memoized.entry.integrity,
+ size: memoized.entry.size,
+ })
}
- return (byDigest ? Promise.resolve(null) : index.find(cache, key, opts)).then(
- (entry) => {
- if (!entry && !byDigest)
- throw new index.NotFoundError(cache, key)
- return read(cache, byDigest ? key : entry.integrity, {
- integrity,
- size,
- })
- .then((data) =>
- byDigest
- ? data
- : {
- data,
- metadata: entry.metadata,
- size: entry.size,
- integrity: entry.integrity,
- }
- )
- .then((res) => {
- if (memoize && byDigest)
- memo.put.byDigest(cache, key, res, opts)
- else if (memoize)
- memo.put(cache, entry, res.data, opts)
-
- return res
- })
- }
- )
-}
+ return index.find(cache, key, opts).then((entry) => {
+ if (!entry)
+ throw new index.NotFoundError(cache, key)
+
+ return read(cache, entry.integrity, { integrity, size }).then((data) => {
+ if (memoize)
+ memo.put(cache, entry, data, opts)
-module.exports.sync = function get (cache, key, opts) {
- return getDataSync(false, cache, key, opts)
+ return {
+ data,
+ metadata: entry.metadata,
+ size: entry.size,
+ integrity: entry.integrity,
+ }
+ })
+ })
}
-module.exports.sync.byDigest = function getByDigest (cache, digest, opts) {
- return getDataSync(true, cache, digest, opts)
+module.exports = getData
+
+function getDataByDigest (cache, key, opts = {}) {
+ const { integrity, memoize, size } = opts
+ const memoized = memo.get.byDigest(cache, key, opts)
+ if (memoized && memoize !== false)
+ return Promise.resolve(memoized)
+
+ return read(cache, key, { integrity, size }).then((res) => {
+ if (memoize)
+ memo.put.byDigest(cache, key, res, opts)
+ return res
+ })
}
+module.exports.byDigest = getDataByDigest
-function getDataSync (byDigest, cache, key, opts = {}) {
+function getDataSync (cache, key, opts = {}) {
const { integrity, memoize, size } = opts
- const memoized = byDigest
- ? memo.get.byDigest(cache, key, opts)
- : memo.get(cache, key, opts)
+ const memoized = memo.get(cache, key, opts)
+
if (memoized && memoize !== false) {
- return byDigest
- ? memoized
- : {
- metadata: memoized.entry.metadata,
- data: memoized.data,
- integrity: memoized.entry.integrity,
- size: memoized.entry.size,
- }
+ return {
+ 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)
+ const entry = index.find.sync(cache, key, opts)
+ if (!entry)
throw new index.NotFoundError(cache, key)
-
- const data = read.sync(cache, byDigest ? key : entry.integrity, {
+ const data = read.sync(cache, entry.integrity, {
integrity: integrity,
size: size,
})
- const res = byDigest
- ? data
- : {
- metadata: entry.metadata,
- data: data,
- size: entry.size,
- integrity: entry.integrity,
- }
- if (memoize && byDigest)
- memo.put.byDigest(cache, key, res, opts)
- else if (memoize)
+ const res = {
+ metadata: entry.metadata,
+ data: data,
+ size: entry.size,
+ integrity: entry.integrity,
+ }
+ if (memoize)
memo.put(cache, entry, res.data, opts)
return res
}
-module.exports.stream = getStream
+module.exports.sync = getDataSync
+
+function getDataByDigestSync (cache, digest, opts = {}) {
+ const { integrity, memoize, size } = opts
+ const memoized = memo.get.byDigest(cache, digest, opts)
+
+ if (memoized && memoize !== false)
+ return memoized
+
+ const res = read.sync(cache, digest, {
+ integrity: integrity,
+ size: size,
+ })
+ if (memoize)
+ memo.put.byDigest(cache, digest, res, opts)
+
+ return res
+}
+module.exports.sync.byDigest = getDataByDigestSync
const getMemoizedStream = (memoized) => {
const stream = new Minipass()
@@ -166,7 +159,7 @@ function getStream (cache, key, opts = {}) {
return stream
}
-module.exports.stream.byDigest = getStreamDigest
+module.exports.stream = getStream
function getStreamDigest (cache, integrity, opts = {}) {
const { memoize } = opts
@@ -191,7 +184,7 @@ function getStreamDigest (cache, integrity, opts = {}) {
}
}
-module.exports.info = info
+module.exports.stream.byDigest = getStreamDigest
function info (cache, key, opts = {}) {
const { memoize } = opts
@@ -201,53 +194,44 @@ function info (cache, key, opts = {}) {
else
return index.find(cache, key)
}
+module.exports.info = info
-module.exports.hasContent = read.hasContent
-
-function cp (cache, key, dest, opts) {
- return copy(false, cache, key, dest, opts)
-}
-
-module.exports.copy = cp
-
-function cpDigest (cache, digest, dest, opts) {
- return copy(true, cache, digest, dest, opts)
-}
-
-module.exports.copy.byDigest = cpDigest
-
-function copy (byDigest, cache, key, dest, opts = {}) {
+function copy (cache, key, dest, opts = {}) {
if (read.copy) {
- return (byDigest
- ? Promise.resolve(null)
- : index.find(cache, key, opts)
- ).then((entry) => {
- if (!entry && !byDigest)
+ return index.find(cache, key, opts).then((entry) => {
+ if (!entry)
throw new index.NotFoundError(cache, key)
-
- return read
- .copy(cache, byDigest ? key : entry.integrity, dest, opts)
+ return read.copy(cache, entry.integrity, dest, opts)
.then(() => {
- return byDigest
- ? key
- : {
- metadata: entry.metadata,
- size: entry.size,
- integrity: entry.integrity,
- }
+ return {
+ metadata: entry.metadata,
+ size: entry.size,
+ integrity: entry.integrity,
+ }
})
})
}
- return getData(byDigest, cache, key, opts).then((res) => {
- return writeFile(dest, byDigest ? res : res.data).then(() => {
- return byDigest
- ? key
- : {
- metadata: res.metadata,
- size: res.size,
- integrity: res.integrity,
- }
+ return getData(cache, key, opts).then((res) => {
+ return writeFile(dest, res.data).then(() => {
+ return {
+ metadata: res.metadata,
+ size: res.size,
+ integrity: res.integrity,
+ }
})
})
}
+module.exports.copy = copy
+
+function copyByDigest (cache, key, dest, opts = {}) {
+ if (read.copy)
+ return read.copy(cache, key, dest, opts).then(() => key)
+
+ return getDataByDigest(cache, key, opts).then((res) => {
+ return writeFile(dest, res).then(() => key)
+ })
+}
+module.exports.copy.byDigest = copyByDigest
+
+module.exports.hasContent = read.hasContent