source: node_modules/undici/lib/api/abort-signal.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 968 bytes
Line 
1const { addAbortListener } = require('../core/util')
2const { RequestAbortedError } = require('../core/errors')
3
4const kListener = Symbol('kListener')
5const kSignal = Symbol('kSignal')
6
7function abort (self) {
8 if (self.abort) {
9 self.abort()
10 } else {
11 self.onError(new RequestAbortedError())
12 }
13}
14
15function addSignal (self, signal) {
16 self[kSignal] = null
17 self[kListener] = null
18
19 if (!signal) {
20 return
21 }
22
23 if (signal.aborted) {
24 abort(self)
25 return
26 }
27
28 self[kSignal] = signal
29 self[kListener] = () => {
30 abort(self)
31 }
32
33 addAbortListener(self[kSignal], self[kListener])
34}
35
36function removeSignal (self) {
37 if (!self[kSignal]) {
38 return
39 }
40
41 if ('removeEventListener' in self[kSignal]) {
42 self[kSignal].removeEventListener('abort', self[kListener])
43 } else {
44 self[kSignal].removeListener('abort', self[kListener])
45 }
46
47 self[kSignal] = null
48 self[kListener] = null
49}
50
51module.exports = {
52 addSignal,
53 removeSignal
54}
Note: See TracBrowser for help on using the repository browser.