mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #13056 from overleaf/jpa-pipeline-express
[misc] use stream.pipeline in express libraries GitOrigin-RevId: a6a50864552237b0c4d153d9f272cdc8d0f297ea
This commit is contained in:
parent
3988f815af
commit
67a21bdc69
3 changed files with 162 additions and 0 deletions
44
patches/body-parser+1.20.1.patch
Normal file
44
patches/body-parser+1.20.1.patch
Normal file
|
@ -0,0 +1,44 @@
|
|||
diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js
|
||||
index fce6283..6131c31 100644
|
||||
--- a/node_modules/body-parser/lib/read.js
|
||||
+++ b/node_modules/body-parser/lib/read.js
|
||||
@@ -18,7 +18,7 @@ var iconv = require('iconv-lite')
|
||||
var onFinished = require('on-finished')
|
||||
var unpipe = require('unpipe')
|
||||
var zlib = require('zlib')
|
||||
-
|
||||
+var Stream = require('stream')
|
||||
/**
|
||||
* Module exports.
|
||||
*/
|
||||
@@ -166,25 +166,25 @@ function contentstream (req, debug, inflate) {
|
||||
case 'deflate':
|
||||
stream = zlib.createInflate()
|
||||
debug('inflate body')
|
||||
- req.pipe(stream)
|
||||
+ // req.pipe(stream)
|
||||
break
|
||||
case 'gzip':
|
||||
stream = zlib.createGunzip()
|
||||
debug('gunzip body')
|
||||
- req.pipe(stream)
|
||||
+ // req.pipe(stream)
|
||||
break
|
||||
case 'identity':
|
||||
stream = req
|
||||
stream.length = length
|
||||
- break
|
||||
+ return req
|
||||
default:
|
||||
throw createError(415, 'unsupported content encoding "' + encoding + '"', {
|
||||
encoding: encoding,
|
||||
type: 'encoding.unsupported'
|
||||
})
|
||||
}
|
||||
-
|
||||
- return stream
|
||||
+ var pass = new Stream.PassThrough(); Stream.pipeline(req, stream, pass, () => {})
|
||||
+ return pass
|
||||
}
|
||||
|
||||
/**
|
57
patches/express++send+0.18.0.patch
Normal file
57
patches/express++send+0.18.0.patch
Normal file
|
@ -0,0 +1,57 @@
|
|||
diff --git a/node_modules/express/node_modules/send/index.js b/node_modules/express/node_modules/send/index.js
|
||||
index 89afd7e..de56daf 100644
|
||||
--- a/node_modules/express/node_modules/send/index.js
|
||||
+++ b/node_modules/express/node_modules/send/index.js
|
||||
@@ -789,29 +789,29 @@ SendStream.prototype.stream = function stream (path, options) {
|
||||
// pipe
|
||||
var stream = fs.createReadStream(path, options)
|
||||
this.emit('stream', stream)
|
||||
- stream.pipe(res)
|
||||
-
|
||||
- // cleanup
|
||||
- function cleanup () {
|
||||
- destroy(stream, true)
|
||||
- }
|
||||
-
|
||||
- // response finished, cleanup
|
||||
- onFinished(res, cleanup)
|
||||
-
|
||||
- // error handling
|
||||
- stream.on('error', function onerror (err) {
|
||||
- // clean up stream early
|
||||
- cleanup()
|
||||
-
|
||||
- // error
|
||||
- self.onStatError(err)
|
||||
- })
|
||||
-
|
||||
- // end
|
||||
- stream.on('end', function onend () {
|
||||
- self.emit('end')
|
||||
- })
|
||||
+ Stream.pipeline(stream, res, err => { if (err) { self.onStatError(err) } else { self.emit('end') } })
|
||||
+
|
||||
+ // // cleanup
|
||||
+ // function cleanup () {
|
||||
+ // destroy(stream, true)
|
||||
+ // }
|
||||
+ //
|
||||
+ // // response finished, cleanup
|
||||
+ // onFinished(res, cleanup)
|
||||
+ //
|
||||
+ // // error handling
|
||||
+ // stream.on('error', function onerror (err) {
|
||||
+ // // clean up stream early
|
||||
+ // cleanup()
|
||||
+ //
|
||||
+ // // error
|
||||
+ // self.onStatError(err)
|
||||
+ // })
|
||||
+ //
|
||||
+ // // end
|
||||
+ // stream.on('end', function onend () {
|
||||
+ // self.emit('end')
|
||||
+ // })
|
||||
}
|
||||
|
||||
/**
|
61
patches/send+0.17.2.patch
Normal file
61
patches/send+0.17.2.patch
Normal file
|
@ -0,0 +1,61 @@
|
|||
diff --git a/node_modules/send/index.js b/node_modules/send/index.js
|
||||
index 06d7507..8854216 100644
|
||||
--- a/node_modules/send/index.js
|
||||
+++ b/node_modules/send/index.js
|
||||
@@ -795,31 +795,31 @@ SendStream.prototype.stream = function stream (path, options) {
|
||||
// pipe
|
||||
var stream = fs.createReadStream(path, options)
|
||||
this.emit('stream', stream)
|
||||
- stream.pipe(res)
|
||||
-
|
||||
- // response finished, done with the fd
|
||||
- onFinished(res, function onfinished () {
|
||||
- finished = true
|
||||
- destroy(stream)
|
||||
- })
|
||||
-
|
||||
- // error handling code-smell
|
||||
- stream.on('error', function onerror (err) {
|
||||
- // request already finished
|
||||
- if (finished) return
|
||||
-
|
||||
- // clean up stream
|
||||
- finished = true
|
||||
- destroy(stream)
|
||||
-
|
||||
- // error
|
||||
- self.onStatError(err)
|
||||
- })
|
||||
-
|
||||
- // end
|
||||
- stream.on('end', function onend () {
|
||||
- self.emit('end')
|
||||
- })
|
||||
+ Stream.pipeline(stream, res, err => { if (err) { self.onStatError(err) } else { self.emit('end') } })
|
||||
+
|
||||
+ // // response finished, done with the fd
|
||||
+ // onFinished(res, function onfinished () {
|
||||
+ // finished = true
|
||||
+ // destroy(stream)
|
||||
+ // })
|
||||
+ //
|
||||
+ // // error handling code-smell
|
||||
+ // stream.on('error', function onerror (err) {
|
||||
+ // // request already finished
|
||||
+ // if (finished) return
|
||||
+ //
|
||||
+ // // clean up stream
|
||||
+ // finished = true
|
||||
+ // destroy(stream)
|
||||
+ //
|
||||
+ // // error
|
||||
+ // self.onStatError(err)
|
||||
+ // })
|
||||
+ //
|
||||
+ // // end
|
||||
+ // stream.on('end', function onend () {
|
||||
+ // self.emit('end')
|
||||
+ // })
|
||||
}
|
||||
|
||||
/**
|
Loading…
Reference in a new issue