cacache 18.0.1 → 18.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/content/read.js +8 -9
- package/package.json +4 -4
package/lib/content/read.js
CHANGED
|
@@ -13,18 +13,20 @@ async function read (cache, integrity, opts = {}) {
|
|
|
13
13
|
const { size } = opts
|
|
14
14
|
const { stat, cpath, sri } = await withContentSri(cache, integrity, async (cpath, sri) => {
|
|
15
15
|
// get size
|
|
16
|
-
const stat = await fs.stat(cpath)
|
|
16
|
+
const stat = size ? { size } : await fs.stat(cpath)
|
|
17
17
|
return { stat, cpath, sri }
|
|
18
18
|
})
|
|
19
|
-
if (typeof size === 'number' && stat.size !== size) {
|
|
20
|
-
throw sizeError(size, stat.size)
|
|
21
|
-
}
|
|
22
19
|
|
|
23
20
|
if (stat.size > MAX_SINGLE_READ_SIZE) {
|
|
24
21
|
return readPipeline(cpath, stat.size, sri, new Pipeline()).concat()
|
|
25
22
|
}
|
|
26
23
|
|
|
27
24
|
const data = await fs.readFile(cpath, { encoding: null })
|
|
25
|
+
|
|
26
|
+
if (stat.size !== data.length) {
|
|
27
|
+
throw sizeError(stat.size, data.length)
|
|
28
|
+
}
|
|
29
|
+
|
|
28
30
|
if (!ssri.checkData(data, sri)) {
|
|
29
31
|
throw integrityError(sri, cpath)
|
|
30
32
|
}
|
|
@@ -55,13 +57,10 @@ function readStream (cache, integrity, opts = {}) {
|
|
|
55
57
|
// Set all this up to run on the stream and then just return the stream
|
|
56
58
|
Promise.resolve().then(async () => {
|
|
57
59
|
const { stat, cpath, sri } = await withContentSri(cache, integrity, async (cpath, sri) => {
|
|
58
|
-
//
|
|
59
|
-
const stat = await fs.stat(cpath)
|
|
60
|
+
// get size
|
|
61
|
+
const stat = size ? { size } : await fs.stat(cpath)
|
|
60
62
|
return { stat, cpath, sri }
|
|
61
63
|
})
|
|
62
|
-
if (typeof size === 'number' && size !== stat.size) {
|
|
63
|
-
return stream.emit('error', sizeError(size, stat.size))
|
|
64
|
-
}
|
|
65
64
|
|
|
66
65
|
return readPipeline(cpath, stat.size, sri, stream)
|
|
67
66
|
}).catch(err => stream.emit('error', err))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cacache",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.2",
|
|
4
4
|
"cache-version": {
|
|
5
5
|
"content": "2",
|
|
6
6
|
"index": "5"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"snap": "tap",
|
|
17
17
|
"coverage": "tap",
|
|
18
18
|
"test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
|
|
19
|
-
"lint": "eslint \"**/*.js\"",
|
|
19
|
+
"lint": "eslint \"**/*.{js,cjs,ts,mjs,jsx,tsx}\"",
|
|
20
20
|
"npmclilint": "npmcli-lint",
|
|
21
21
|
"lintfix": "npm run lint -- --fix",
|
|
22
22
|
"postsnap": "npm run lintfix --",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@npmcli/eslint-config": "^4.0.0",
|
|
63
|
-
"@npmcli/template-oss": "4.
|
|
63
|
+
"@npmcli/template-oss": "4.21.3",
|
|
64
64
|
"tap": "^16.0.0"
|
|
65
65
|
},
|
|
66
66
|
"engines": {
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"templateOSS": {
|
|
70
70
|
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
|
|
71
71
|
"windowsCI": false,
|
|
72
|
-
"version": "4.
|
|
72
|
+
"version": "4.21.3",
|
|
73
73
|
"publish": "true"
|
|
74
74
|
},
|
|
75
75
|
"author": "GitHub Inc.",
|