happy-dom 2.50.0 → 2.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (113) hide show
  1. package/lib/async-task-manager/AsyncTaskManager.d.ts +65 -0
  2. package/lib/{window → async-task-manager}/AsyncTaskManager.js +52 -55
  3. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -0
  4. package/lib/fetch/FetchHandler.d.ts +17 -0
  5. package/lib/fetch/FetchHandler.js +59 -0
  6. package/lib/fetch/FetchHandler.js.map +1 -0
  7. package/lib/fetch/Headers.d.ts +7 -0
  8. package/lib/fetch/Headers.js +53 -0
  9. package/lib/fetch/Headers.js.map +1 -0
  10. package/lib/fetch/IAbortSignal.d.ts +16 -0
  11. package/lib/fetch/IAbortSignal.js +4 -0
  12. package/lib/fetch/IAbortSignal.js.map +1 -0
  13. package/lib/fetch/IBody.d.ts +17 -0
  14. package/lib/{window/IFetchOptions.js → fetch/IBody.js} +1 -1
  15. package/lib/fetch/IBody.js.map +1 -0
  16. package/lib/fetch/IHeaders.d.ts +18 -0
  17. package/lib/fetch/IHeaders.js +3 -0
  18. package/lib/fetch/IHeaders.js.map +1 -0
  19. package/lib/fetch/IHeadersInit.d.ts +5 -0
  20. package/lib/fetch/IHeadersInit.js +3 -0
  21. package/lib/fetch/IHeadersInit.js.map +1 -0
  22. package/lib/fetch/IRequest.d.ts +18 -0
  23. package/lib/fetch/IRequest.js +3 -0
  24. package/lib/fetch/IRequest.js.map +1 -0
  25. package/lib/fetch/IRequestInit.d.ts +15 -0
  26. package/lib/fetch/IRequestInit.js +3 -0
  27. package/lib/fetch/IRequestInit.js.map +1 -0
  28. package/lib/fetch/IResponse.d.ts +20 -0
  29. package/lib/{window → fetch}/IResponse.js +0 -0
  30. package/lib/{window → fetch}/IResponse.js.map +1 -1
  31. package/lib/fetch/IResponseInit.d.ts +9 -0
  32. package/lib/fetch/IResponseInit.js +3 -0
  33. package/lib/fetch/IResponseInit.js.map +1 -0
  34. package/lib/fetch/Request.d.ts +69 -0
  35. package/lib/fetch/Request.js +179 -0
  36. package/lib/fetch/Request.js.map +1 -0
  37. package/lib/fetch/ResourceFetchHandler.d.ts +22 -0
  38. package/lib/fetch/{ResourceFetcher.js → ResourceFetchHandler.js} +19 -26
  39. package/lib/fetch/ResourceFetchHandler.js.map +1 -0
  40. package/lib/fetch/Response.d.ts +69 -0
  41. package/lib/fetch/Response.js +179 -0
  42. package/lib/fetch/Response.js.map +1 -0
  43. package/lib/file/Blob.d.ts +8 -1
  44. package/lib/file/Blob.js +48 -0
  45. package/lib/file/Blob.js.map +1 -1
  46. package/lib/file/IBlob.d.ts +10 -0
  47. package/lib/file/IBlob.js +3 -0
  48. package/lib/file/IBlob.js.map +1 -0
  49. package/lib/form-data/IFormData.d.ts +30 -0
  50. package/lib/form-data/IFormData.js +3 -0
  51. package/lib/form-data/IFormData.js.map +1 -0
  52. package/lib/index.d.ts +3 -5
  53. package/lib/index.js +3 -3
  54. package/lib/index.js.map +1 -1
  55. package/lib/nodes/document/Document.js +9 -0
  56. package/lib/nodes/document/Document.js.map +1 -1
  57. package/lib/nodes/html-link-element/HTMLLinkElement.js +3 -3
  58. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  59. package/lib/nodes/html-script-element/ScriptUtility.js +3 -9
  60. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  61. package/lib/nodes/node/INode.d.ts +6 -0
  62. package/lib/nodes/node/Node.d.ts +6 -0
  63. package/lib/nodes/node/Node.js +6 -0
  64. package/lib/nodes/node/Node.js.map +1 -1
  65. package/lib/window/IWindow.d.ts +20 -16
  66. package/lib/window/Window.d.ts +45 -10
  67. package/lib/window/Window.js +72 -66
  68. package/lib/window/Window.js.map +1 -1
  69. package/package.json +3 -2
  70. package/src/async-task-manager/AsyncTaskManager.ts +128 -0
  71. package/src/fetch/FetchHandler.ts +54 -0
  72. package/src/fetch/Headers.ts +7 -0
  73. package/src/fetch/IAbortSignal.ts +34 -0
  74. package/src/fetch/IBody.ts +18 -0
  75. package/src/fetch/IHeaders.ts +18 -0
  76. package/src/fetch/IHeadersInit.ts +5 -0
  77. package/src/fetch/IRequest.ts +59 -0
  78. package/src/fetch/IRequestInit.ts +41 -0
  79. package/src/fetch/IResponse.ts +22 -0
  80. package/src/fetch/IResponseInit.ts +10 -0
  81. package/src/fetch/Request.ts +149 -0
  82. package/src/fetch/ResourceFetchHandler.ts +47 -0
  83. package/src/fetch/Response.ts +149 -0
  84. package/src/file/Blob.ts +12 -1
  85. package/src/file/IBlob.ts +10 -0
  86. package/src/form-data/IFormData.ts +33 -0
  87. package/src/index.ts +2 -6
  88. package/src/nodes/document/Document.ts +12 -0
  89. package/src/nodes/html-link-element/HTMLLinkElement.ts +3 -3
  90. package/src/nodes/html-script-element/ScriptUtility.ts +3 -9
  91. package/src/nodes/node/INode.ts +6 -0
  92. package/src/nodes/node/Node.ts +6 -0
  93. package/src/window/IWindow.ts +14 -16
  94. package/src/window/Window.ts +68 -67
  95. package/lib/fetch/ResourceFetcher.d.ts +0 -30
  96. package/lib/fetch/ResourceFetcher.js.map +0 -1
  97. package/lib/url-search-params/URLSearchParams.d.ts +0 -87
  98. package/lib/url-search-params/URLSearchParams.js +0 -196
  99. package/lib/url-search-params/URLSearchParams.js.map +0 -1
  100. package/lib/window/AsyncTaskManager.d.ts +0 -54
  101. package/lib/window/AsyncTaskManager.js.map +0 -1
  102. package/lib/window/AsyncTaskTypeEnum.d.ts +0 -5
  103. package/lib/window/AsyncTaskTypeEnum.js +0 -9
  104. package/lib/window/AsyncTaskTypeEnum.js.map +0 -1
  105. package/lib/window/IFetchOptions.d.ts +0 -13
  106. package/lib/window/IFetchOptions.js.map +0 -1
  107. package/lib/window/IResponse.d.ts +0 -32
  108. package/src/fetch/ResourceFetcher.ts +0 -55
  109. package/src/url-search-params/URLSearchParams.ts +0 -198
  110. package/src/window/AsyncTaskManager.ts +0 -127
  111. package/src/window/AsyncTaskTypeEnum.ts +0 -5
  112. package/src/window/IFetchOptions.ts +0 -11
  113. package/src/window/IResponse.ts +0 -34
@@ -142,11 +142,8 @@ var UIEvent_1 = __importDefault(require("../event/UIEvent"));
142
142
  var ErrorEvent_1 = __importDefault(require("../event/events/ErrorEvent"));
143
143
  var StorageEvent_1 = __importDefault(require("../event/events/StorageEvent"));
144
144
  var Screen_1 = __importDefault(require("../screen/Screen"));
145
- var AsyncTaskManager_1 = __importDefault(require("./AsyncTaskManager"));
146
- var AsyncTaskTypeEnum_1 = __importDefault(require("./AsyncTaskTypeEnum"));
147
- var RelativeURL_1 = __importDefault(require("../location/RelativeURL"));
145
+ var AsyncTaskManager_1 = __importDefault(require("../async-task-manager/AsyncTaskManager"));
148
146
  var Storage_1 = __importDefault(require("../storage/Storage"));
149
- var URLSearchParams_1 = __importDefault(require("../url-search-params/URLSearchParams"));
150
147
  var HTMLCollection_1 = __importDefault(require("../nodes/element/HTMLCollection"));
151
148
  var NodeList_1 = __importDefault(require("../nodes/node/NodeList"));
152
149
  var MediaQueryList_1 = __importDefault(require("../match-media/MediaQueryList"));
@@ -157,7 +154,8 @@ var MimeType_1 = __importDefault(require("../navigator/MimeType"));
157
154
  var MimeTypeArray_1 = __importDefault(require("../navigator/MimeTypeArray"));
158
155
  var Plugin_1 = __importDefault(require("../navigator/Plugin"));
159
156
  var PluginArray_1 = __importDefault(require("../navigator/PluginArray"));
160
- var FETCH_RESPONSE_TYPE_METHODS = ['blob', 'json', 'text'];
157
+ var FetchHandler_1 = __importDefault(require("../fetch/FetchHandler"));
158
+ var url_1 = require("url");
161
159
  /**
162
160
  * Handles the Window.
163
161
  */
@@ -179,7 +177,7 @@ var Window = /** @class */ (function (_super) {
179
177
  });
180
178
  }); },
181
179
  cancelAsync: function () {
182
- _this.happyDOM.asyncTaskManager.cancelAllTasks();
180
+ _this.happyDOM.asyncTaskManager.cancelAll();
183
181
  },
184
182
  asyncTaskManager: new AsyncTaskManager_1.default()
185
183
  };
@@ -236,7 +234,6 @@ var Window = /** @class */ (function (_super) {
236
234
  _this.Location = Location_1.default;
237
235
  _this.CustomElementRegistry = CustomElementRegistry_1.default;
238
236
  _this.Window = Window;
239
- _this.Headers = Map;
240
237
  _this.XMLSerializer = XMLSerializer_1.default;
241
238
  _this.ResizeObserver = ResizeObserver_1.default;
242
239
  _this.CSSStyleSheet = CSSStyleSheet_1.default;
@@ -247,7 +244,7 @@ var Window = /** @class */ (function (_super) {
247
244
  _this.History = History_1.default;
248
245
  _this.Screen = Screen_1.default;
249
246
  _this.Storage = Storage_1.default;
250
- _this.URLSearchParams = URLSearchParams_1.default;
247
+ _this.URLSearchParams = url_1.URLSearchParams;
251
248
  _this.HTMLCollection = HTMLCollection_1.default;
252
249
  _this.NodeList = NodeList_1.default;
253
250
  _this.MediaQueryList = MediaQueryList_1.default;
@@ -279,7 +276,6 @@ var Window = /** @class */ (function (_super) {
279
276
  _this.localStorage = new Storage_1.default();
280
277
  _this.performance = PerfHooks.performance;
281
278
  // Node.js Globals
282
- _this.Array = global ? global.Array : null;
283
279
  _this.ArrayBuffer = global ? global.ArrayBuffer : null;
284
280
  _this.Boolean = global ? global.Boolean : null;
285
281
  _this.Buffer = null;
@@ -340,6 +336,7 @@ var Window = /** @class */ (function (_super) {
340
336
  _this.AbortSignal = global ? global.AbortSignal : null;
341
337
  // Private properties
342
338
  _this._objectClass = null;
339
+ _this._arrayClass = null;
343
340
  _this._functionClass = null;
344
341
  _this.document = new HTMLDocument_1.default();
345
342
  _this.document.defaultView = _this;
@@ -388,6 +385,24 @@ var Window = /** @class */ (function (_super) {
388
385
  enumerable: false,
389
386
  configurable: true
390
387
  });
388
+ Object.defineProperty(Window.prototype, "Array", {
389
+ /**
390
+ * Returns Array class.
391
+ *
392
+ * @returns Array class.
393
+ */
394
+ get: function () {
395
+ if (this._arrayClass) {
396
+ return this._arrayClass;
397
+ }
398
+ // When inside a VM global.Object is not the same as [].constructor
399
+ // We will therefore run the code inside the VM to get the real constructor
400
+ this._arrayClass = this.eval('[].constructor');
401
+ return this._arrayClass;
402
+ },
403
+ enumerable: false,
404
+ configurable: true
405
+ });
391
406
  Object.defineProperty(Window.prototype, "Function", {
392
407
  /**
393
408
  * Returns Function class.
@@ -418,6 +433,46 @@ var Window = /** @class */ (function (_super) {
418
433
  enumerable: false,
419
434
  configurable: true
420
435
  });
436
+ Object.defineProperty(Window.prototype, "Headers", {
437
+ /**
438
+ * Returns Headers class.
439
+ *
440
+ * @returns Headers.
441
+ */
442
+ get: function () {
443
+ return require('../fetch/Headers').default;
444
+ },
445
+ enumerable: false,
446
+ configurable: true
447
+ });
448
+ Object.defineProperty(Window.prototype, "Request", {
449
+ /**
450
+ * Returns Request class.
451
+ *
452
+ * @returns Request.
453
+ */
454
+ get: function () {
455
+ var Request = require('../fetch/Request').default;
456
+ Request._ownerDocument = Request._ownerDocument || this.document;
457
+ return Request;
458
+ },
459
+ enumerable: false,
460
+ configurable: true
461
+ });
462
+ Object.defineProperty(Window.prototype, "Response", {
463
+ /**
464
+ * Returns Response class.
465
+ *
466
+ * @returns Response.
467
+ */
468
+ get: function () {
469
+ var Response = require('../fetch/Response').default;
470
+ Response._ownerDocument = Response._ownerDocument || this.document;
471
+ return Response;
472
+ },
473
+ enumerable: false,
474
+ configurable: true
475
+ });
421
476
  /**
422
477
  * Evaluates code.
423
478
  *
@@ -577,69 +632,20 @@ var Window = /** @class */ (function (_super) {
577
632
  this.clearTimeout(id);
578
633
  };
579
634
  /**
580
- * Provides a global fetch() method that provides an easy, logical way to fetch resources asynchronously across the network.
635
+ * This method provides an easy, logical way to fetch resources asynchronously across the network.
581
636
  *
582
637
  * @override
583
- * @param url URL to resource.
584
- * @param [options] Options.
638
+ * @param url URL.
639
+ * @param [init] Init.
585
640
  * @returns Promise.
586
641
  */
587
- Window.prototype.fetch = function (url, options) {
642
+ Window.prototype.fetch = function (url, init) {
588
643
  return __awaiter(this, void 0, void 0, function () {
589
- var _this = this;
590
644
  return __generator(this, function (_a) {
591
- return [2 /*return*/, new Promise(function (resolve, reject) {
592
- var fetch = null;
593
- try {
594
- fetch = require('node-fetch');
595
- }
596
- catch (error) {
597
- throw new Error('Failed to perform fetch. "node-fetch" could not be loaded.');
598
- }
599
- _this.happyDOM.asyncTaskManager.startTask(AsyncTaskTypeEnum_1.default.fetch);
600
- fetch(RelativeURL_1.default.getAbsoluteURL(_this.location, url), options)
601
- .then(function (response) {
602
- if (_this.happyDOM.asyncTaskManager.getRunningCount(AsyncTaskTypeEnum_1.default.fetch) === 0) {
603
- reject(new Error('Failed to complete fetch request. Task was canceled.'));
604
- }
605
- else {
606
- var _loop_1 = function (methodName) {
607
- var asyncMethod = response[methodName];
608
- response[methodName] = function () {
609
- return new Promise(function (resolve, reject) {
610
- _this.happyDOM.asyncTaskManager.startTask(AsyncTaskTypeEnum_1.default.fetch);
611
- asyncMethod
612
- .call(response)
613
- .then(function (response) {
614
- if (_this.happyDOM.asyncTaskManager.getRunningCount(AsyncTaskTypeEnum_1.default.fetch) ===
615
- 0) {
616
- reject(new Error('Failed to complete fetch request. Task was canceled.'));
617
- }
618
- else {
619
- resolve(response);
620
- _this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch);
621
- }
622
- })
623
- .catch(function (error) {
624
- reject(error);
625
- _this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch, error);
626
- });
627
- });
628
- };
629
- };
630
- for (var _i = 0, FETCH_RESPONSE_TYPE_METHODS_1 = FETCH_RESPONSE_TYPE_METHODS; _i < FETCH_RESPONSE_TYPE_METHODS_1.length; _i++) {
631
- var methodName = FETCH_RESPONSE_TYPE_METHODS_1[_i];
632
- _loop_1(methodName);
633
- }
634
- resolve(response);
635
- _this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch);
636
- }
637
- })
638
- .catch(function (error) {
639
- reject(error);
640
- _this.happyDOM.asyncTaskManager.endTask(AsyncTaskTypeEnum_1.default.fetch, error);
641
- });
642
- })];
645
+ switch (_a.label) {
646
+ case 0: return [4 /*yield*/, FetchHandler_1.default.fetch(this.document, url, init)];
647
+ case 1: return [2 /*return*/, _a.sent()];
648
+ }
643
649
  });
644
650
  });
645
651
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "2.50.0",
3
+ "version": "2.52.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -60,6 +60,7 @@
60
60
  "@types/he": "^1.1.2",
61
61
  "@types/jest": "^27.4.1",
62
62
  "@types/node": "^15.6.0",
63
+ "@types/node-fetch": "^2.6.1",
63
64
  "@typescript-eslint/eslint-plugin": "^5.16.0",
64
65
  "@typescript-eslint/parser": "^5.16.0",
65
66
  "eslint": "^8.11.0",
@@ -75,5 +76,5 @@
75
76
  "ts-jest": "^27.1.3",
76
77
  "typescript": "^4.6.2"
77
78
  },
78
- "gitHead": "6f5427b83c3aaa08f5a27063309d83f29da72054"
79
+ "gitHead": "f38d5bb65acbf0439485cfdead6fb97785973b87"
79
80
  }
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Handles async tasks.
3
+ */
4
+ export default class AsyncTaskManager {
5
+ private static taskID = 0;
6
+ private runningTasks: number[] = [];
7
+ private runningTimers: NodeJS.Timeout[] = [];
8
+ private queue: { resolve: () => void; reject: (error: Error) => void }[] = [];
9
+
10
+ /**
11
+ * Returns a promise that is fulfilled when async tasks are complete.
12
+ * This method is not part of the HTML standard.
13
+ *
14
+ * @returns Promise.
15
+ */
16
+ public async whenComplete(): Promise<void> {
17
+ return new Promise((resolve, reject) => {
18
+ const timerID = global.setTimeout(() => {
19
+ this.endTimer(timerID);
20
+ }, 0);
21
+ this.startTimer(timerID);
22
+ this.queue.push({ resolve, reject });
23
+ });
24
+ }
25
+
26
+ /**
27
+ * Cancels all tasks.
28
+ *
29
+ * @param [error] Error.
30
+ */
31
+ public cancelAll(error?: Error): void {
32
+ for (const timerID of this.runningTimers) {
33
+ global.clearTimeout(timerID);
34
+ }
35
+
36
+ const promises = this.queue;
37
+
38
+ this.runningTasks = [];
39
+ this.runningTimers = [];
40
+ this.queue = [];
41
+
42
+ for (const promise of promises) {
43
+ if (error) {
44
+ promise.reject(error);
45
+ } else {
46
+ promise.resolve();
47
+ }
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Starts a timer.
53
+ *
54
+ * @param timerID Timer ID.
55
+ */
56
+ public startTimer(timerID: NodeJS.Timeout): void {
57
+ this.runningTimers.push(timerID);
58
+ }
59
+
60
+ /**
61
+ * Ends a timer.
62
+ *
63
+ * @param timerID Timer ID.
64
+ */
65
+ public endTimer(timerID: NodeJS.Timeout): void {
66
+ const index = this.runningTimers.indexOf(timerID);
67
+ if (index !== -1) {
68
+ this.runningTimers.splice(index, 1);
69
+ }
70
+ if (!this.runningTasks.length && !this.runningTimers.length) {
71
+ this.cancelAll();
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Starts an async task.
77
+ *
78
+ * @returns Task ID.
79
+ */
80
+ public startTask(): number {
81
+ const taskID = this.newTaskID();
82
+ this.runningTasks.push(taskID);
83
+ return taskID;
84
+ }
85
+
86
+ /**
87
+ * Ends an async task.
88
+ *
89
+ * @param taskID Task ID.
90
+ */
91
+ public endTask(taskID: number): void {
92
+ const index = this.runningTasks.indexOf(taskID);
93
+ if (index !== -1) {
94
+ this.runningTasks.splice(index, 1);
95
+ }
96
+ if (!this.runningTasks.length && !this.runningTimers.length) {
97
+ this.cancelAll();
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Returns the amount of running tasks.
103
+ *
104
+ * @returns Count.
105
+ */
106
+ public getTaskCount(): number {
107
+ return this.runningTasks.length;
108
+ }
109
+
110
+ /**
111
+ * Returns the amount of running timers.
112
+ *
113
+ * @returns Count.
114
+ */
115
+ public getTimerCount(): number {
116
+ return this.runningTimers.length;
117
+ }
118
+
119
+ /**
120
+ * Returns a new task ID.
121
+ *
122
+ * @returns Task ID.
123
+ */
124
+ private newTaskID(): number {
125
+ (<typeof AsyncTaskManager>this.constructor).taskID++;
126
+ return (<typeof AsyncTaskManager>this.constructor).taskID;
127
+ }
128
+ }
@@ -0,0 +1,54 @@
1
+ import RelativeURL from '../location/RelativeURL';
2
+ import IRequestInit from './IRequestInit';
3
+ import IDocument from '../nodes/document/IDocument';
4
+ import IResponse from './IResponse';
5
+
6
+ /**
7
+ * Helper class for performing fetch.
8
+ */
9
+ export default class FetchHandler {
10
+ /**
11
+ * Returns resource data asynchonously.
12
+ *
13
+ * @param document Document.
14
+ * @param url URL to resource.
15
+ * @param [init] Init.
16
+ * @returns Response.
17
+ */
18
+ public static fetch(document: IDocument, url: string, init?: IRequestInit): Promise<IResponse> {
19
+ // We want to only load NodeFetch when it is needed to improve performance and not have direct dependencies to server side packages.
20
+ const nodeFetch = require('node-fetch');
21
+ const Response = require('./Response').default;
22
+ const taskManager = document.defaultView.happyDOM.asyncTaskManager;
23
+
24
+ return new Promise((resolve, reject) => {
25
+ const taskID = taskManager.startTask();
26
+
27
+ nodeFetch(RelativeURL.getAbsoluteURL(document.defaultView.location, url), init)
28
+ .then((response) => {
29
+ if (taskManager.getTaskCount() === 0) {
30
+ reject(new Error('Failed to complete fetch request. Task was canceled.'));
31
+ } else {
32
+ response.constructor['_ownerDocument'] = document;
33
+
34
+ for (const key of Object.keys(Response.prototype)) {
35
+ if (Response.prototype.hasOwnProperty(key) && key !== 'constructor') {
36
+ if (typeof Response.prototype[key] === 'function') {
37
+ response[key] = Response.prototype[key].bind(response);
38
+ } else {
39
+ response[key] = Response.prototype[key];
40
+ }
41
+ }
42
+ }
43
+
44
+ taskManager.endTask(taskID);
45
+ resolve(response);
46
+ }
47
+ })
48
+ .catch((error) => {
49
+ reject(error);
50
+ taskManager.cancelAll(error);
51
+ });
52
+ });
53
+ }
54
+ }
@@ -0,0 +1,7 @@
1
+ import * as NodeFetch from 'node-fetch';
2
+ import IHeaders from './IHeaders';
3
+
4
+ /**
5
+ * Fetch headers.
6
+ */
7
+ export default class Headers extends NodeFetch.Headers implements IHeaders {}
@@ -0,0 +1,34 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ /**
4
+ * Abort signal.
5
+ */
6
+ export default interface IAbortSignal {
7
+ aborted: boolean;
8
+
9
+ addEventListener: (
10
+ type: 'abort',
11
+ listener: (this: IAbortSignal, event: any) => any,
12
+ options?:
13
+ | boolean
14
+ | {
15
+ capture?: boolean | undefined;
16
+ once?: boolean | undefined;
17
+ passive?: boolean | undefined;
18
+ }
19
+ ) => void;
20
+
21
+ removeEventListener: (
22
+ type: 'abort',
23
+ listener: (this: IAbortSignal, event: any) => any,
24
+ options?:
25
+ | boolean
26
+ | {
27
+ capture?: boolean | undefined;
28
+ }
29
+ ) => void;
30
+
31
+ dispatchEvent: (event: any) => boolean;
32
+
33
+ onabort: null | ((this: IAbortSignal, event: any) => void);
34
+ }
@@ -0,0 +1,18 @@
1
+ import IBlob from '../file/IBlob';
2
+
3
+ /**
4
+ * Fetch response.
5
+ */
6
+ export default interface IBody {
7
+ readonly body: NodeJS.ReadableStream;
8
+ readonly bodyUsed: boolean;
9
+ readonly size: number;
10
+ readonly timeout: number;
11
+
12
+ arrayBuffer(): Promise<ArrayBuffer>;
13
+ blob(): Promise<IBlob>;
14
+ buffer(): Promise<Buffer>;
15
+ json(): Promise<unknown>;
16
+ text(): Promise<string>;
17
+ textConverted(): Promise<string>;
18
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Fetch headers.
3
+ */
4
+ export default interface IHeaders extends Iterable<[string, string]> {
5
+ forEach(callback: (value: string, name: string) => void): void;
6
+ append(name: string, value: string): void;
7
+ delete(name: string): void;
8
+ get(name: string): string | null;
9
+ has(name: string): boolean;
10
+ raw(): { [k: string]: string[] };
11
+ set(name: string, value: string): void;
12
+
13
+ // Iterable methods
14
+ entries(): IterableIterator<[string, string]>;
15
+ keys(): IterableIterator<string>;
16
+ values(): IterableIterator<string>;
17
+ [Symbol.iterator](): Iterator<[string, string]>;
18
+ }
@@ -0,0 +1,5 @@
1
+ import IHeaders from './IHeaders';
2
+
3
+ type IHeadersInit = string[][] | { [key: string]: string } | IHeaders;
4
+
5
+ export default IHeadersInit;
@@ -0,0 +1,59 @@
1
+ import IHeaders from './IHeaders';
2
+ import IBody from './IBody';
3
+
4
+ /**
5
+ * Fetch request.
6
+ */
7
+ export default interface IRequest extends IBody {
8
+ readonly headers: IHeaders;
9
+ readonly method: string;
10
+ readonly redirect: 'error' | 'follow' | 'manual';
11
+ readonly referrer: string;
12
+ readonly url: string;
13
+
14
+ /**
15
+ * Returns a clone.
16
+ *
17
+ * @returns Clone.
18
+ */
19
+ clone(): IRequest;
20
+
21
+ // Not implemented:
22
+ // Readonly cache: 'default' | 'force-cache' | 'no-cache' | 'no-store' | 'only-if-cached' | 'reload';
23
+ // Readonly credentials: 'include' | 'omit' | 'same-origin';
24
+ // Readonly destination:
25
+ // | ''
26
+ // | 'object'
27
+ // | 'audio'
28
+ // | 'audioworklet'
29
+ // | 'document'
30
+ // | 'embed'
31
+ // | 'font'
32
+ // | 'frame'
33
+ // | 'iframe'
34
+ // | 'image'
35
+ // | 'manifest'
36
+ // | 'paintworklet'
37
+ // | 'report'
38
+ // | 'script'
39
+ // | 'sharedworker'
40
+ // | 'style'
41
+ // | 'track'
42
+ // | 'video'
43
+ // | 'worker'
44
+ // | 'xslt';
45
+ // Readonly referrerPolicy:
46
+ // | ''
47
+ // | 'same-origin'
48
+ // | 'no-referrer'
49
+ // | 'no-referrer-when-downgrade'
50
+ // | 'origin'
51
+ // | 'origin-when-cross-origin'
52
+ // | 'strict-origin'
53
+ // | 'strict-origin-when-cross-origin'
54
+ // | 'unsafe-url';
55
+ // Readonly signal: AbortSignal;
56
+ // Readonly integrity: string;
57
+ // Readonly keepalive: boolean;
58
+ // Readonly mode: 'same-origin' | 'cors' | 'navigate' | 'no-cors';
59
+ }
@@ -0,0 +1,41 @@
1
+ import IHeadersInit from './IHeadersInit';
2
+ import IAbortSignal from './IAbortSignal';
3
+ import { URLSearchParams } from 'url';
4
+ import IFormData from '../form-data/IFormData';
5
+
6
+ /**
7
+ * Fetch request init.
8
+ */
9
+ export default interface IRequestInit {
10
+ body?:
11
+ | ArrayBuffer
12
+ | ArrayBufferView
13
+ | NodeJS.ReadableStream
14
+ | string
15
+ | URLSearchParams
16
+ | IFormData
17
+ | null;
18
+ headers?: IHeadersInit;
19
+ method?: string;
20
+ redirect?: 'error' | 'manual' | 'follow';
21
+ signal?: IAbortSignal | null;
22
+
23
+ // Not implemented:
24
+ // Cache?: 'default' | 'force-cache' | 'no-cache' | 'no-store' | 'only-if-cached' | 'reload';
25
+ // Credentials?: 'include' | 'omit' | 'same-origin';
26
+ // Integrity?: string;
27
+ // Keepalive?: boolean;
28
+ // Mode?: 'same-origin' | 'cors' | 'navigate' | 'no-cors';
29
+ // Referrer?: string;
30
+ // ReferrerPolicy?:
31
+ // | ''
32
+ // | 'same-origin'
33
+ // | 'no-referrer'
34
+ // | 'no-referrer-when-downgrade'
35
+ // | 'origin'
36
+ // | 'origin-when-cross-origin'
37
+ // | 'strict-origin'
38
+ // | 'strict-origin-when-cross-origin'
39
+ // | 'unsafe-url';
40
+ // Window?: unknown;
41
+ }