|
|
@ -17,7 +17,7 @@ function monkeyPatchEnd(res) { |
|
|
|
let originalChunk = args[0]; |
|
|
|
let prefix; |
|
|
|
|
|
|
|
if (originalChunk == null || Buffer.isBuffer(originalChunk)) { |
|
|
|
if (originalChunk == null || typeof originalChunk === "string" || Buffer.isBuffer(originalChunk)) { |
|
|
|
if (res.getHeader("content-type").startsWith("text/html")) { |
|
|
|
let contentLength = res.getHeader("content-length"); |
|
|
|
|
|
|
@ -31,18 +31,22 @@ function monkeyPatchEnd(res) { |
|
|
|
|
|
|
|
// Reset the `end` method back to the original method; we don't need to get in the way anymore
|
|
|
|
res.end = end; |
|
|
|
|
|
|
|
let originalChunkAsBuffer = (typeof originalChunk === "string") |
|
|
|
? Buffer.from(originalChunk) |
|
|
|
: originalChunk; |
|
|
|
|
|
|
|
if (prefix != null) { |
|
|
|
let chunk = (originalChunk == null) |
|
|
|
let chunk = (originalChunkAsBuffer == null) |
|
|
|
? reloadClientTag |
|
|
|
: Buffer.concat([ originalChunk, reloadClientTag ]); |
|
|
|
: Buffer.concat([ originalChunkAsBuffer, reloadClientTag ]); |
|
|
|
|
|
|
|
end(chunk, ... args.slice(1)); |
|
|
|
} else { |
|
|
|
end(... args); |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new Error(`Expected a buffer in 'end', but got something else: ${util.inspect(args[0])}`); |
|
|
|
throw new Error(`Expected a buffer or string in 'end', but got something else: ${util.inspect(args[0])}`); |
|
|
|
} |
|
|
|
}; |
|
|
|
} |
|
|
|