Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 19x 19x 19x 19x 19x 19x 19x 19x 19x 19x 19x 19x 19x 19x 39x 39x 1x 1x 19x 19x 38x 38x 38x 19x 19x 39x 39x 1x 1x 37x 19x 19x 38x 1x 1x 37x 37x 37x 37x 11x 33x 26x 26x 26x 37x 19x | 'use strict'; const { AbortError, codes, } = require('internal/errors'); const eos = require('internal/streams/end-of-stream'); const { ERR_INVALID_ARG_TYPE } = codes; // This method is inlined here for readable-stream // It also does not allow for signal to not exist on the stream // https://github.com/nodejs/node/pull/36061#discussion_r533718029 const validateAbortSignal = (signal, name) => { if (typeof signal !== 'object' || !('aborted' in signal)) { throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal); } }; function isNodeStream(obj) { return !!(obj && typeof obj.pipe === 'function'); } module.exports.addAbortSignal = function addAbortSignal(signal, stream) { validateAbortSignal(signal, 'signal'); if (!isNodeStream(stream)) { throw new ERR_INVALID_ARG_TYPE('stream', 'stream.Stream', stream); } return module.exports.addAbortSignalNoValidate(signal, stream); }; module.exports.addAbortSignalNoValidate = function(signal, stream) { if (typeof signal !== 'object' || !('aborted' in signal)) { return stream; } const onAbort = () => { stream.destroy(new AbortError(undefined, { cause: signal.reason })); }; if (signal.aborted) { onAbort(); } else { signal.addEventListener('abort', onAbort); eos(stream, () => signal.removeEventListener('abort', onAbort)); } return stream; }; |