@whatwg-node/server 0.9.58 → 0.9.59
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.
- package/cjs/createServerAdapter.js +24 -32
- package/cjs/utils.js +1 -1
- package/esm/createServerAdapter.js +24 -32
- package/esm/utils.js +1 -1
- package/package.json +1 -1
|
@@ -28,33 +28,24 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
28
28
|
const onRequestHooks = [];
|
|
29
29
|
const onResponseHooks = [];
|
|
30
30
|
const waitUntilPromises = new Set();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
disposableStack.defer(() => {
|
|
45
|
-
if (waitUntilPromises.size > 0) {
|
|
46
|
-
return Promise.allSettled(waitUntilPromises).then(() => {
|
|
47
|
-
waitUntilPromises.clear();
|
|
48
|
-
}, () => {
|
|
49
|
-
waitUntilPromises.clear();
|
|
31
|
+
let _disposableStack;
|
|
32
|
+
function ensureDisposableStack() {
|
|
33
|
+
if (!_disposableStack) {
|
|
34
|
+
_disposableStack = new disposablestack_1.AsyncDisposableStack();
|
|
35
|
+
(0, utils_js_1.ensureDisposableStackRegisteredForTerminateEvents)(_disposableStack);
|
|
36
|
+
_disposableStack.defer(() => {
|
|
37
|
+
if (waitUntilPromises.size > 0) {
|
|
38
|
+
return Promise.allSettled(waitUntilPromises).then(() => {
|
|
39
|
+
waitUntilPromises.clear();
|
|
40
|
+
}, () => {
|
|
41
|
+
waitUntilPromises.clear();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
50
44
|
});
|
|
51
45
|
}
|
|
52
|
-
|
|
46
|
+
return _disposableStack;
|
|
47
|
+
}
|
|
53
48
|
function waitUntil(promiseLike) {
|
|
54
|
-
// If it is a Node.js environment, we should register the disposable stack to handle process termination events
|
|
55
|
-
if (globalThis.process) {
|
|
56
|
-
(0, utils_js_1.ensureDisposableStackRegisteredForTerminateEvents)(disposableStack);
|
|
57
|
-
}
|
|
58
49
|
waitUntilPromises.add(promiseLike);
|
|
59
50
|
promiseLike.then(() => {
|
|
60
51
|
waitUntilPromises.delete(promiseLike);
|
|
@@ -73,7 +64,7 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
73
64
|
}
|
|
74
65
|
const disposeFn = plugin[disposablestack_1.DisposableSymbols.asyncDispose] || plugin[disposablestack_1.DisposableSymbols.dispose];
|
|
75
66
|
if (disposeFn != null) {
|
|
76
|
-
|
|
67
|
+
ensureDisposableStack().defer(disposeFn);
|
|
77
68
|
}
|
|
78
69
|
}
|
|
79
70
|
}
|
|
@@ -148,7 +139,7 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
148
139
|
// TODO: Remove this on the next major version
|
|
149
140
|
function handleNodeRequest(nodeRequest, ...ctx) {
|
|
150
141
|
const serverContext = ctx.length > 1 ? (0, utils_js_1.completeAssign)(...ctx) : ctx[0] || {};
|
|
151
|
-
const request = (0, utils_js_1.normalizeNodeRequest)(nodeRequest, fetchAPI
|
|
142
|
+
const request = (0, utils_js_1.normalizeNodeRequest)(nodeRequest, fetchAPI);
|
|
152
143
|
return handleRequest(request, serverContext);
|
|
153
144
|
}
|
|
154
145
|
function handleNodeRequestAndResponse(nodeRequest, nodeResponseOrContainer, ...ctx) {
|
|
@@ -195,7 +186,6 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
195
186
|
? (0, utils_js_1.completeAssign)(defaultServerContext, ...ctx)
|
|
196
187
|
: defaultServerContext;
|
|
197
188
|
const signal = new utils_js_1.ServerAdapterRequestAbortSignal();
|
|
198
|
-
registerSignal(signal);
|
|
199
189
|
const originalResEnd = res.end.bind(res);
|
|
200
190
|
let resEnded = false;
|
|
201
191
|
res.end = function (data) {
|
|
@@ -314,16 +304,18 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
314
304
|
handleEvent,
|
|
315
305
|
handleUWS,
|
|
316
306
|
handle: genericRequestHandler,
|
|
317
|
-
disposableStack
|
|
307
|
+
get disposableStack() {
|
|
308
|
+
return ensureDisposableStack();
|
|
309
|
+
},
|
|
318
310
|
[disposablestack_1.DisposableSymbols.asyncDispose]() {
|
|
319
|
-
if (!
|
|
320
|
-
return
|
|
311
|
+
if (_disposableStack && !_disposableStack.disposed) {
|
|
312
|
+
return _disposableStack.disposeAsync();
|
|
321
313
|
}
|
|
322
314
|
return (0, uwebsockets_js_1.fakePromise)(undefined);
|
|
323
315
|
},
|
|
324
316
|
dispose() {
|
|
325
|
-
if (!
|
|
326
|
-
return
|
|
317
|
+
if (_disposableStack && !_disposableStack.disposed) {
|
|
318
|
+
return _disposableStack.disposeAsync();
|
|
327
319
|
}
|
|
328
320
|
return (0, uwebsockets_js_1.fakePromise)(undefined);
|
|
329
321
|
},
|
package/cjs/utils.js
CHANGED
|
@@ -547,7 +547,7 @@ function handleResponseDecompression(response, fetchAPI) {
|
|
|
547
547
|
}
|
|
548
548
|
return decompressedResponse;
|
|
549
549
|
}
|
|
550
|
-
const terminateEvents = ['SIGINT', '
|
|
550
|
+
const terminateEvents = ['SIGINT', 'exit'];
|
|
551
551
|
const disposableStacks = new Set();
|
|
552
552
|
let eventListenerRegistered = false;
|
|
553
553
|
function ensureEventListenerForDisposableStacks() {
|
|
@@ -24,33 +24,24 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
24
24
|
const onRequestHooks = [];
|
|
25
25
|
const onResponseHooks = [];
|
|
26
26
|
const waitUntilPromises = new Set();
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
disposableStack.defer(() => {
|
|
41
|
-
if (waitUntilPromises.size > 0) {
|
|
42
|
-
return Promise.allSettled(waitUntilPromises).then(() => {
|
|
43
|
-
waitUntilPromises.clear();
|
|
44
|
-
}, () => {
|
|
45
|
-
waitUntilPromises.clear();
|
|
27
|
+
let _disposableStack;
|
|
28
|
+
function ensureDisposableStack() {
|
|
29
|
+
if (!_disposableStack) {
|
|
30
|
+
_disposableStack = new AsyncDisposableStack();
|
|
31
|
+
ensureDisposableStackRegisteredForTerminateEvents(_disposableStack);
|
|
32
|
+
_disposableStack.defer(() => {
|
|
33
|
+
if (waitUntilPromises.size > 0) {
|
|
34
|
+
return Promise.allSettled(waitUntilPromises).then(() => {
|
|
35
|
+
waitUntilPromises.clear();
|
|
36
|
+
}, () => {
|
|
37
|
+
waitUntilPromises.clear();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
46
40
|
});
|
|
47
41
|
}
|
|
48
|
-
|
|
42
|
+
return _disposableStack;
|
|
43
|
+
}
|
|
49
44
|
function waitUntil(promiseLike) {
|
|
50
|
-
// If it is a Node.js environment, we should register the disposable stack to handle process termination events
|
|
51
|
-
if (globalThis.process) {
|
|
52
|
-
ensureDisposableStackRegisteredForTerminateEvents(disposableStack);
|
|
53
|
-
}
|
|
54
45
|
waitUntilPromises.add(promiseLike);
|
|
55
46
|
promiseLike.then(() => {
|
|
56
47
|
waitUntilPromises.delete(promiseLike);
|
|
@@ -69,7 +60,7 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
69
60
|
}
|
|
70
61
|
const disposeFn = plugin[DisposableSymbols.asyncDispose] || plugin[DisposableSymbols.dispose];
|
|
71
62
|
if (disposeFn != null) {
|
|
72
|
-
|
|
63
|
+
ensureDisposableStack().defer(disposeFn);
|
|
73
64
|
}
|
|
74
65
|
}
|
|
75
66
|
}
|
|
@@ -144,7 +135,7 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
144
135
|
// TODO: Remove this on the next major version
|
|
145
136
|
function handleNodeRequest(nodeRequest, ...ctx) {
|
|
146
137
|
const serverContext = ctx.length > 1 ? completeAssign(...ctx) : ctx[0] || {};
|
|
147
|
-
const request = normalizeNodeRequest(nodeRequest, fetchAPI
|
|
138
|
+
const request = normalizeNodeRequest(nodeRequest, fetchAPI);
|
|
148
139
|
return handleRequest(request, serverContext);
|
|
149
140
|
}
|
|
150
141
|
function handleNodeRequestAndResponse(nodeRequest, nodeResponseOrContainer, ...ctx) {
|
|
@@ -191,7 +182,6 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
191
182
|
? completeAssign(defaultServerContext, ...ctx)
|
|
192
183
|
: defaultServerContext;
|
|
193
184
|
const signal = new ServerAdapterRequestAbortSignal();
|
|
194
|
-
registerSignal(signal);
|
|
195
185
|
const originalResEnd = res.end.bind(res);
|
|
196
186
|
let resEnded = false;
|
|
197
187
|
res.end = function (data) {
|
|
@@ -310,16 +300,18 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
310
300
|
handleEvent,
|
|
311
301
|
handleUWS,
|
|
312
302
|
handle: genericRequestHandler,
|
|
313
|
-
disposableStack
|
|
303
|
+
get disposableStack() {
|
|
304
|
+
return ensureDisposableStack();
|
|
305
|
+
},
|
|
314
306
|
[DisposableSymbols.asyncDispose]() {
|
|
315
|
-
if (!
|
|
316
|
-
return
|
|
307
|
+
if (_disposableStack && !_disposableStack.disposed) {
|
|
308
|
+
return _disposableStack.disposeAsync();
|
|
317
309
|
}
|
|
318
310
|
return fakePromise(undefined);
|
|
319
311
|
},
|
|
320
312
|
dispose() {
|
|
321
|
-
if (!
|
|
322
|
-
return
|
|
313
|
+
if (_disposableStack && !_disposableStack.disposed) {
|
|
314
|
+
return _disposableStack.disposeAsync();
|
|
323
315
|
}
|
|
324
316
|
return fakePromise(undefined);
|
|
325
317
|
},
|
package/esm/utils.js
CHANGED
|
@@ -524,7 +524,7 @@ export function handleResponseDecompression(response, fetchAPI) {
|
|
|
524
524
|
}
|
|
525
525
|
return decompressedResponse;
|
|
526
526
|
}
|
|
527
|
-
const terminateEvents = ['SIGINT', '
|
|
527
|
+
const terminateEvents = ['SIGINT', 'exit'];
|
|
528
528
|
const disposableStacks = new Set();
|
|
529
529
|
let eventListenerRegistered = false;
|
|
530
530
|
function ensureEventListenerForDisposableStacks() {
|