mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-23 17:19:37 +02:00
* Set `node-fetch` to `^2.7.0`
* Update package-lock.json
```
# root
bin/npm update node-fetch
bin/npm update cross-fetch
# in other path in docker
npm update node-fetch
```
* Update node-fetch patch
* [fetch-utils] Skip the test: destroys the request body if it doesn't get consumed
```
1) fetch-utils
fetchJson
destroys the request body if it doesn't get consumed:
FetchError: Invalid response body while trying to fetch http://example.com:30001/json/ignore-request: write EPIPE
at PassThrough.<anonymous> (/overleaf/node_modules/node-fetch/lib/index.js:400:12)
at PassThrough.emit (node:events:529:35)
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
```
* [fetch-utils] Delete the test: destroys the request body if it doesn't get consumed
* Remove the `setTimeout` in the node-fetch patch
Fixes a test and doesn't break filestore acceptance tests
* Update node-fetch patch again: bring changes from https://github.com/node-fetch/node-fetch/blob/e87b093/src/index.js
* Update node-fetch patch again: bring changes from https://github.com/node-fetch/node-fetch/blob/e87b093/src/index.js
* Update node-fetch patches back to single lines
Per https://github.com/overleaf/internal/pull/20165#discussion_r1739035513
GitOrigin-RevId: 945e5a12e838673b7bc87b588b7aca1bcd9109e2
77 lines
2.9 KiB
Diff
77 lines
2.9 KiB
Diff
diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js
|
|
index 567ff5d..8eb45f7 100644
|
|
--- a/node_modules/node-fetch/lib/index.js
|
|
+++ b/node_modules/node-fetch/lib/index.js
|
|
@@ -545,8 +545,8 @@ function clone(instance) {
|
|
// tee instance body
|
|
p1 = new PassThrough();
|
|
p2 = new PassThrough();
|
|
- body.pipe(p1);
|
|
- body.pipe(p2);
|
|
+ Stream.pipeline(body, p1, () => {});
|
|
+ Stream.pipeline(body, p2, () => {});
|
|
// set instance body to teed body and return the other teed body
|
|
instance[INTERNALS].body = p1;
|
|
body = p2;
|
|
@@ -648,14 +648,14 @@ function writeToStream(dest, instance) {
|
|
// body is null
|
|
dest.end();
|
|
} else if (isBlob(body)) {
|
|
- body.stream().pipe(dest);
|
|
+ Stream.pipeline(body.stream(), dest, () => {});
|
|
} else if (Buffer.isBuffer(body)) {
|
|
// body is buffer
|
|
dest.write(body);
|
|
dest.end();
|
|
} else {
|
|
// body is stream
|
|
- body.pipe(dest);
|
|
+ Stream.pipeline(body, dest, () => {});
|
|
}
|
|
}
|
|
|
|
@@ -1638,7 +1638,7 @@ function fetch(url, opts) {
|
|
res.once('end', function () {
|
|
if (signal) signal.removeEventListener('abort', abortAndFinalize);
|
|
});
|
|
- let body = res.pipe(new PassThrough$1());
|
|
+ let body = Stream.pipeline(res, new PassThrough(), error => { if (error) reject(error); });
|
|
|
|
const response_options = {
|
|
url: request.url,
|
|
@@ -1679,7 +1679,7 @@ function fetch(url, opts) {
|
|
|
|
// for gzip
|
|
if (codings == 'gzip' || codings == 'x-gzip') {
|
|
- body = body.pipe(zlib.createGunzip(zlibOptions));
|
|
+ body = Stream.pipeline(body, zlib.createGunzip(zlibOptions), error => { if (error) reject(error); });
|
|
response = new Response(body, response_options);
|
|
resolve(response);
|
|
return;
|
|
@@ -1689,13 +1689,13 @@ function fetch(url, opts) {
|
|
if (codings == 'deflate' || codings == 'x-deflate') {
|
|
// handle the infamous raw deflate response from old servers
|
|
// a hack for old IIS and Apache servers
|
|
- const raw = res.pipe(new PassThrough$1());
|
|
+ const raw = Stream.pipeline(res, new PassThrough(), error => { if (error) reject(error); });
|
|
raw.once('data', function (chunk) {
|
|
// see http://stackoverflow.com/questions/37519828
|
|
if ((chunk[0] & 0x0F) === 0x08) {
|
|
- body = body.pipe(zlib.createInflate());
|
|
+ body = Stream.pipeline(body, zlib.createInflate(), error => { if (error) reject(error); });
|
|
} else {
|
|
- body = body.pipe(zlib.createInflateRaw());
|
|
+ body = Stream.pipeline(body, zlib.createInflateRaw(), error => { if (error) reject(error); });
|
|
}
|
|
response = new Response(body, response_options);
|
|
resolve(response);
|
|
@@ -1712,7 +1712,7 @@ function fetch(url, opts) {
|
|
|
|
// for br
|
|
if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {
|
|
- body = body.pipe(zlib.createBrotliDecompress());
|
|
+ body = Stream.pipeline(body, zlib.createBrotliDecompress(), error => { if (error) reject(error); });
|
|
response = new Response(body, response_options);
|
|
resolve(response);
|
|
return;
|