@@ -20,17 +20,15 @@ const isBlob =
20
20
/* eslint-enable indent */
21
21
22
22
const validateAbortSignal = ( signal , name ) => {
23
- if ( signal !== undefined &&
24
- ( signal === null ||
25
- typeof signal !== 'object' ||
26
- ! ( 'aborted' in signal ) ) ) {
27
- throw new ERR_INVALID_ARG_TYPE ( name , 'AbortSignal' , signal ) ;
23
+ if ( signal !== undefined && ( signal === null || typeof signal !== 'object' || ! ( 'aborted' in signal ) ) ) {
24
+ throw new ERR_INVALID_ARG_TYPE ( name , 'AbortSignal' , signal )
28
25
}
29
- } ;
26
+ }
30
27
const validateFunction = ( value , name ) => {
31
- if ( typeof value !== 'function' )
32
- throw new ERR_INVALID_ARG_TYPE ( name , 'Function' , value ) ;
33
- } ;
28
+ if ( typeof value !== 'function' ) {
29
+ throw new ERR_INVALID_ARG_TYPE ( name , 'Function' , value )
30
+ }
31
+ }
34
32
35
33
// This is a simplified version of AggregateError
36
34
class AggregateError extends Error {
@@ -153,45 +151,53 @@ module.exports = {
153
151
deprecate ( fn , message ) {
154
152
return fn
155
153
} ,
156
- addAbortListener : require ( 'events' ) . addAbortListener || function addAbortListener ( signal , listener ) {
157
- if ( signal === undefined ) {
158
- throw new ERR_INVALID_ARG_TYPE ( 'signal' , 'AbortSignal' , signal ) ;
159
- }
160
- validateAbortSignal ( signal , 'signal' ) ;
161
- validateFunction ( listener , 'listener' ) ;
162
-
163
- let removeEventListener ;
164
- if ( signal . aborted ) {
165
- queueMicrotask ( ( ) => listener ( ) ) ;
166
- } else {
167
- signal . addEventListener ( 'abort' , listener , { __proto__ : null , once : true , [ kResistStopPropagation ] : true } ) ;
168
- removeEventListener = ( ) => {
169
- signal . removeEventListener ( 'abort' , listener ) ;
170
- } ;
171
- }
172
- return {
173
- __proto__ : null ,
174
- [ SymbolDispose ] ( ) {
175
- removeEventListener ?. ( ) ;
176
- } ,
177
- } ;
178
- } ,
179
- AbortSignalAny : AbortSignal . any || function AbortSignalAny ( signals ) {
180
- // Fast path if there is only one signal.
181
- if ( signals . length === 1 ) {
182
- return signals [ 0 ]
154
+ addAbortListener :
155
+ require ( 'events' ) . addAbortListener ||
156
+ function addAbortListener ( signal , listener ) {
157
+ if ( signal === undefined ) {
158
+ throw new ERR_INVALID_ARG_TYPE ( 'signal' , 'AbortSignal' , signal )
159
+ }
160
+ validateAbortSignal ( signal , 'signal' )
161
+ validateFunction ( listener , 'listener' )
162
+
163
+ let removeEventListener
164
+ if ( signal . aborted ) {
165
+ queueMicrotask ( ( ) => listener ( ) )
166
+ } else {
167
+ signal . addEventListener ( 'abort' , listener , { __proto__ : null , once : true , [ kResistStopPropagation ] : true } )
168
+ removeEventListener = ( ) => {
169
+ signal . removeEventListener ( 'abort' , listener )
170
+ }
171
+ }
172
+ return {
173
+ __proto__ : null ,
174
+ [ SymbolDispose ] ( ) {
175
+ removeEventListener ?. ( )
176
+ }
177
+ }
178
+ } ,
179
+ AbortSignalAny :
180
+ AbortSignal . any ||
181
+ function AbortSignalAny ( signals ) {
182
+ // Fast path if there is only one signal.
183
+ if ( signals . length === 1 ) {
184
+ return signals [ 0 ]
185
+ }
186
+ const ac = new AbortController ( )
187
+ const abort = ( ) => ac . abort ( )
188
+ signals . forEach ( ( signal ) => {
189
+ validateAbortSignal ( signal , 'signals' )
190
+ signal . addEventListener ( 'abort' , abort , { once : true } )
191
+ } )
192
+ ac . signal . addEventListener (
193
+ 'abort' ,
194
+ ( ) => {
195
+ signals . forEach ( ( signal ) => signal . removeEventListener ( 'abort' , abort ) )
196
+ } ,
197
+ { once : true }
198
+ )
199
+ return ac . signal
183
200
}
184
- const ac = new AbortController ( )
185
- const abort = ( ) => ac . abort ( )
186
- signals . forEach ( signal => {
187
- validateAbortSignal ( signal , 'signals' )
188
- signal . addEventListener ( 'abort' , abort , { once : true } )
189
- } )
190
- ac . signal . addEventListener ( 'abort' , ( ) => {
191
- signals . forEach ( signal => signal . removeEventListener ( 'abort' , abort ) )
192
- } , { once : true } )
193
- return ac . signal
194
- }
195
201
}
196
202
197
203
module . exports . promisify . custom = Symbol . for ( 'nodejs.util.promisify.custom' )
0 commit comments