Skip to content

Commit

Permalink
fix: more sensible stack trace from dump error
Browse files Browse the repository at this point in the history
  • Loading branch information
ronag committed Dec 6, 2023
1 parent 0c3c6f8 commit b6ba89e
Showing 1 changed file with 11 additions and 16 deletions.
27 changes: 11 additions & 16 deletions lib/api/readable.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,35 +163,30 @@ module.exports = class BodyReadable extends Readable {
return this[kBody]
}

dump (opts) {
async dump (opts) {
let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144
const signal = opts && opts.signal

if (signal) {
try {
if (typeof signal !== 'object' || !('aborted' in signal)) {
throw new InvalidArgumentError('signal must be an AbortSignal')
}
util.throwIfAborted(signal)
} catch (err) {
return Promise.reject(err)
if (typeof signal !== 'object' || !('aborted' in signal)) {
throw new InvalidArgumentError('signal must be an AbortSignal')
}
util.throwIfAborted(signal)
}

if (this._readableState.closeEmitted) {
return Promise.resolve(null)
return null
}

return new Promise((resolve, reject) => {
const signalListenerCleanup = signal
? util.addAbortListener(signal, () => {
this.destroy()
})
: noop
return await new Promise((resolve, reject) => {
const onAbort = () => {
this.destroy()
}
signal?.addEventListener('abort', onAbort)

this
.on('close', function () {
signalListenerCleanup()
signal?.removeEventListener('abort', onAbort)
if (signal && signal.aborted) {
reject(signal.reason || Object.assign(new Error('The operation was aborted'), { name: 'AbortError' }))
} else {
Expand Down

0 comments on commit b6ba89e

Please sign in to comment.