happy-dom 2.50.0 → 2.51.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.
- package/lib/async-task-manager/AsyncTaskManager.d.ts +65 -0
- package/lib/{window → async-task-manager}/AsyncTaskManager.js +52 -55
- package/lib/async-task-manager/AsyncTaskManager.js.map +1 -0
- package/lib/fetch/FetchHandler.d.ts +17 -0
- package/lib/fetch/FetchHandler.js +59 -0
- package/lib/fetch/FetchHandler.js.map +1 -0
- package/lib/fetch/Headers.d.ts +7 -0
- package/lib/fetch/Headers.js +53 -0
- package/lib/fetch/Headers.js.map +1 -0
- package/lib/fetch/IAbortSignal.d.ts +16 -0
- package/lib/fetch/IAbortSignal.js +4 -0
- package/lib/fetch/IAbortSignal.js.map +1 -0
- package/lib/fetch/IBody.d.ts +17 -0
- package/lib/{window/IFetchOptions.js → fetch/IBody.js} +1 -1
- package/lib/fetch/IBody.js.map +1 -0
- package/lib/fetch/IHeaders.d.ts +18 -0
- package/lib/fetch/IHeaders.js +3 -0
- package/lib/fetch/IHeaders.js.map +1 -0
- package/lib/fetch/IHeadersInit.d.ts +5 -0
- package/lib/fetch/IHeadersInit.js +3 -0
- package/lib/fetch/IHeadersInit.js.map +1 -0
- package/lib/fetch/IRequest.d.ts +18 -0
- package/lib/fetch/IRequest.js +3 -0
- package/lib/fetch/IRequest.js.map +1 -0
- package/lib/fetch/IRequestInit.d.ts +15 -0
- package/lib/fetch/IRequestInit.js +3 -0
- package/lib/fetch/IRequestInit.js.map +1 -0
- package/lib/fetch/IResponse.d.ts +20 -0
- package/lib/{window → fetch}/IResponse.js +0 -0
- package/lib/{window → fetch}/IResponse.js.map +1 -1
- package/lib/fetch/IResponseInit.d.ts +9 -0
- package/lib/fetch/IResponseInit.js +3 -0
- package/lib/fetch/IResponseInit.js.map +1 -0
- package/lib/fetch/Request.d.ts +69 -0
- package/lib/fetch/Request.js +179 -0
- package/lib/fetch/Request.js.map +1 -0
- package/lib/fetch/ResourceFetchHandler.d.ts +22 -0
- package/lib/fetch/{ResourceFetcher.js → ResourceFetchHandler.js} +19 -26
- package/lib/fetch/ResourceFetchHandler.js.map +1 -0
- package/lib/fetch/Response.d.ts +69 -0
- package/lib/fetch/Response.js +179 -0
- package/lib/fetch/Response.js.map +1 -0
- package/lib/file/Blob.d.ts +8 -1
- package/lib/file/Blob.js +48 -0
- package/lib/file/Blob.js.map +1 -1
- package/lib/file/IBlob.d.ts +10 -0
- package/lib/file/IBlob.js +3 -0
- package/lib/file/IBlob.js.map +1 -0
- package/lib/form-data/IFormData.d.ts +30 -0
- package/lib/form-data/IFormData.js +3 -0
- package/lib/form-data/IFormData.js.map +1 -0
- package/lib/index.d.ts +3 -5
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +3 -3
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-script-element/ScriptUtility.js +3 -9
- package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
- package/lib/window/IWindow.d.ts +20 -16
- package/lib/window/Window.d.ts +45 -10
- package/lib/window/Window.js +72 -66
- package/lib/window/Window.js.map +1 -1
- package/package.json +3 -2
- package/src/async-task-manager/AsyncTaskManager.ts +128 -0
- package/src/fetch/FetchHandler.ts +54 -0
- package/src/fetch/Headers.ts +7 -0
- package/src/fetch/IAbortSignal.ts +34 -0
- package/src/fetch/IBody.ts +18 -0
- package/src/fetch/IHeaders.ts +18 -0
- package/src/fetch/IHeadersInit.ts +5 -0
- package/src/fetch/IRequest.ts +59 -0
- package/src/fetch/IRequestInit.ts +41 -0
- package/src/fetch/IResponse.ts +22 -0
- package/src/fetch/IResponseInit.ts +10 -0
- package/src/fetch/Request.ts +149 -0
- package/src/fetch/ResourceFetchHandler.ts +47 -0
- package/src/fetch/Response.ts +149 -0
- package/src/file/Blob.ts +12 -1
- package/src/file/IBlob.ts +10 -0
- package/src/form-data/IFormData.ts +33 -0
- package/src/index.ts +2 -6
- package/src/nodes/html-link-element/HTMLLinkElement.ts +3 -3
- package/src/nodes/html-script-element/ScriptUtility.ts +3 -9
- package/src/window/IWindow.ts +14 -16
- package/src/window/Window.ts +68 -67
- package/lib/fetch/ResourceFetcher.d.ts +0 -30
- package/lib/fetch/ResourceFetcher.js.map +0 -1
- package/lib/url-search-params/URLSearchParams.d.ts +0 -87
- package/lib/url-search-params/URLSearchParams.js +0 -196
- package/lib/url-search-params/URLSearchParams.js.map +0 -1
- package/lib/window/AsyncTaskManager.d.ts +0 -54
- package/lib/window/AsyncTaskManager.js.map +0 -1
- package/lib/window/AsyncTaskTypeEnum.d.ts +0 -5
- package/lib/window/AsyncTaskTypeEnum.js +0 -9
- package/lib/window/AsyncTaskTypeEnum.js.map +0 -1
- package/lib/window/IFetchOptions.d.ts +0 -13
- package/lib/window/IFetchOptions.js.map +0 -1
- package/lib/window/IResponse.d.ts +0 -32
- package/src/fetch/ResourceFetcher.ts +0 -55
- package/src/url-search-params/URLSearchParams.ts +0 -198
- package/src/window/AsyncTaskManager.ts +0 -127
- package/src/window/AsyncTaskTypeEnum.ts +0 -5
- package/src/window/IFetchOptions.ts +0 -11
- package/src/window/IResponse.ts +0 -34
@@ -1,127 +0,0 @@
|
|
1
|
-
import AsyncTaskTypeEnum from './AsyncTaskTypeEnum';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Handles async tasks.
|
5
|
-
*/
|
6
|
-
export default class AsyncTaskManager {
|
7
|
-
private tasks: { [k: string]: (NodeJS.Timeout | string)[] } = {};
|
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 cancelAllTasks(error?: Error): void {
|
32
|
-
if (this.tasks[AsyncTaskTypeEnum.timer]) {
|
33
|
-
for (const id of this.tasks[AsyncTaskTypeEnum.timer]) {
|
34
|
-
global.clearTimeout(<NodeJS.Timeout>id);
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
|
-
const promises = this.queue;
|
39
|
-
|
40
|
-
this.tasks = {};
|
41
|
-
this.queue = [];
|
42
|
-
|
43
|
-
for (const promise of promises) {
|
44
|
-
if (error) {
|
45
|
-
promise.reject(error);
|
46
|
-
} else {
|
47
|
-
promise.resolve();
|
48
|
-
}
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
|
-
/**
|
53
|
-
* Starts a timer.
|
54
|
-
*
|
55
|
-
* @param id Timer ID.
|
56
|
-
*/
|
57
|
-
public startTimer(id: NodeJS.Timeout = null): void {
|
58
|
-
this.tasks[AsyncTaskTypeEnum.timer] = this.tasks[AsyncTaskTypeEnum.timer] || [];
|
59
|
-
this.tasks[AsyncTaskTypeEnum.timer].push(id);
|
60
|
-
}
|
61
|
-
|
62
|
-
/**
|
63
|
-
* Ends a timer.
|
64
|
-
*
|
65
|
-
* @param id Timer ID.
|
66
|
-
*/
|
67
|
-
public endTimer(id: NodeJS.Timeout = null): void {
|
68
|
-
if (this.tasks[AsyncTaskTypeEnum.timer]) {
|
69
|
-
const index = this.tasks[AsyncTaskTypeEnum.timer].indexOf(id);
|
70
|
-
if (index !== -1) {
|
71
|
-
this.tasks[AsyncTaskTypeEnum.timer].splice(index, 1);
|
72
|
-
if (this.tasks[AsyncTaskTypeEnum.timer].length === 0) {
|
73
|
-
delete this.tasks[AsyncTaskTypeEnum.timer];
|
74
|
-
|
75
|
-
if (Object.keys(this.tasks).length === 0) {
|
76
|
-
this.cancelAllTasks();
|
77
|
-
}
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
/**
|
84
|
-
* Starts an async task.
|
85
|
-
*
|
86
|
-
* @param type Task type.
|
87
|
-
*/
|
88
|
-
public startTask(type: AsyncTaskTypeEnum): void {
|
89
|
-
this.tasks[type] = this.tasks[type] || [];
|
90
|
-
this.tasks[type].push(type);
|
91
|
-
}
|
92
|
-
|
93
|
-
/**
|
94
|
-
* Ends an async task.
|
95
|
-
*
|
96
|
-
* @param type Task type.
|
97
|
-
* @param [error] Error.
|
98
|
-
*/
|
99
|
-
public endTask(type: AsyncTaskTypeEnum, error?: Error): void {
|
100
|
-
if (error) {
|
101
|
-
this.cancelAllTasks(error);
|
102
|
-
} else if (this.tasks[type]) {
|
103
|
-
this.tasks[type].pop();
|
104
|
-
|
105
|
-
if (this.tasks[type].length === 0) {
|
106
|
-
delete this.tasks[type];
|
107
|
-
|
108
|
-
if (Object.keys(this.tasks).length === 0) {
|
109
|
-
this.cancelAllTasks();
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}
|
113
|
-
}
|
114
|
-
|
115
|
-
/**
|
116
|
-
* Returns the amount of running tasks by type.
|
117
|
-
*
|
118
|
-
* @param type Task type.
|
119
|
-
* @returns Count.
|
120
|
-
*/
|
121
|
-
public getRunningCount(type: AsyncTaskTypeEnum): number {
|
122
|
-
if (this.tasks[type]) {
|
123
|
-
return this.tasks[type].length;
|
124
|
-
}
|
125
|
-
return 0;
|
126
|
-
}
|
127
|
-
}
|
package/src/window/IResponse.ts
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
import Blob from '../file/Blob';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Fetch response.
|
5
|
-
*/
|
6
|
-
export default interface IResponse {
|
7
|
-
readonly url: string;
|
8
|
-
readonly status: number;
|
9
|
-
readonly ok: boolean;
|
10
|
-
readonly redirected: boolean;
|
11
|
-
readonly statusText: string;
|
12
|
-
readonly headers: { [k: string]: string };
|
13
|
-
|
14
|
-
/**
|
15
|
-
* Returns JSON.
|
16
|
-
*
|
17
|
-
* @returns JSON.
|
18
|
-
*/
|
19
|
-
json(): Promise<string>;
|
20
|
-
|
21
|
-
/**
|
22
|
-
* Returns Text.
|
23
|
-
*
|
24
|
-
* @returns Text.
|
25
|
-
*/
|
26
|
-
text(): Promise<string>;
|
27
|
-
|
28
|
-
/**
|
29
|
-
* Returns blob.
|
30
|
-
*
|
31
|
-
* @returns Blob.
|
32
|
-
*/
|
33
|
-
blob(): Promise<Blob>;
|
34
|
-
}
|