+17
-18
lines changedFilter options
+17
-18
lines changed Original file line number Diff line number Diff line change
@@ -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
-
// just stat to ensure it exists
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))
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "cacache",
3
-
"version": "18.0.1",
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.19.0",
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.19.0",
72
+
"version": "4.21.3",
73
73
"publish": "true"
74
74
},
75
75
"author": "GitHub Inc.",
Original file line number Diff line number Diff line change
@@ -100,7 +100,7 @@
100
100
"@sigstore/tuf": "^2.2.0",
101
101
"abbrev": "^2.0.0",
102
102
"archy": "~1.0.0",
103
-
"cacache": "^18.0.1",
103
+
"cacache": "^18.0.2",
104
104
"chalk": "^5.3.0",
105
105
"ci-info": "^4.0.0",
106
106
"cli-columns": "^4.0.0",
@@ -3109,9 +3109,9 @@
3109
3109
}
3110
3110
},
3111
3111
"node_modules/cacache": {
3112
-
"version": "18.0.1",
3113
-
"resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz",
3114
-
"integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==",
3112
+
"version": "18.0.2",
3113
+
"resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz",
3114
+
"integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==",
3115
3115
"inBundle": true,
3116
3116
"dependencies": {
3117
3117
"@npmcli/fs": "^3.1.0",
Original file line number Diff line number Diff line change
@@ -62,7 +62,7 @@
62
62
"@sigstore/tuf": "^2.2.0",
63
63
"abbrev": "^2.0.0",
64
64
"archy": "~1.0.0",
65
-
"cacache": "^18.0.1",
65
+
"cacache": "^18.0.2",
66
66
"chalk": "^5.3.0",
67
67
"ci-info": "^4.0.0",
68
68
"cli-columns": "^4.0.0",
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4