@whatwg-node/server 0.10.0-alpha-20241125130609-2d42652904068bfd5c22714b7277b8c77917aeba → 0.10.0-alpha-20241125134618-c16c2cc24251a5902f85c9dcc0ecdd373f7568ff

Sign up to get free protection for your applications and to get access to all the features.
@@ -43,7 +43,11 @@ function createServerAdapter(serverAdapterBaseObject, options) {
43
43
  });
44
44
  disposableStack.defer(() => {
45
45
  if (waitUntilPromises.size > 0) {
46
- return Promise.allSettled(waitUntilPromises).then(() => { }, () => { });
46
+ return Promise.allSettled(waitUntilPromises).then(() => {
47
+ waitUntilPromises.clear();
48
+ }, () => {
49
+ waitUntilPromises.clear();
50
+ });
47
51
  }
48
52
  });
49
53
  function waitUntil(promiseLike) {
@@ -51,12 +55,13 @@ function createServerAdapter(serverAdapterBaseObject, options) {
51
55
  if (globalThis.process) {
52
56
  (0, utils_js_1.ensureDisposableStackRegisteredForTerminateEvents)(disposableStack);
53
57
  }
54
- waitUntilPromises.add(promiseLike.then(() => {
58
+ waitUntilPromises.add(promiseLike);
59
+ promiseLike.then(() => {
55
60
  waitUntilPromises.delete(promiseLike);
56
61
  }, err => {
57
62
  console.error(`Unexpected error while waiting: ${err.message || err}`);
58
63
  waitUntilPromises.delete(promiseLike);
59
- }));
64
+ });
60
65
  }
61
66
  if (options?.plugins != null) {
62
67
  for (const plugin of options.plugins) {
@@ -47,7 +47,6 @@ function useContentEncoding() {
47
47
  }
48
48
  },
49
49
  onResponse({ request, response, setResponse, fetchAPI, serverContext }) {
50
- const waitUntil = serverContext.waitUntil?.bind(serverContext) || (() => { });
51
50
  // Hack for avoiding to create whatwg-node to create a readable stream until it's needed
52
51
  if (response['bodyInit'] || response.body) {
53
52
  const encodings = encodingMap.get(request);
@@ -61,8 +60,10 @@ function useContentEncoding() {
61
60
  const bufOfRes = response._buffer;
62
61
  if (bufOfRes) {
63
62
  const writer = compressionStream.writable.getWriter();
64
- waitUntil(writer.write(bufOfRes));
65
- waitUntil(writer.close());
63
+ const write$ = writer.write(bufOfRes);
64
+ serverContext.waitUntil?.(write$);
65
+ const close$ = writer.close();
66
+ serverContext.waitUntil?.(close$);
66
67
  const uint8Arrays$ = (0, utils_js_1.isReadable)(compressionStream.readable['readable'])
67
68
  ? collectReadableValues(compressionStream.readable['readable'])
68
69
  : (0, utils_js_1.isAsyncIterable)(compressionStream.readable)
@@ -80,7 +81,8 @@ function useContentEncoding() {
80
81
  });
81
82
  utils_js_1.decompressedResponseMap.set(compressedResponse, response);
82
83
  setResponse(compressedResponse);
83
- waitUntil(compressionStream.writable.close());
84
+ const close$ = compressionStream.writable.close();
85
+ serverContext.waitUntil?.(close$);
84
86
  });
85
87
  }
86
88
  }
@@ -39,7 +39,11 @@ function createServerAdapter(serverAdapterBaseObject, options) {
39
39
  });
40
40
  disposableStack.defer(() => {
41
41
  if (waitUntilPromises.size > 0) {
42
- return Promise.allSettled(waitUntilPromises).then(() => { }, () => { });
42
+ return Promise.allSettled(waitUntilPromises).then(() => {
43
+ waitUntilPromises.clear();
44
+ }, () => {
45
+ waitUntilPromises.clear();
46
+ });
43
47
  }
44
48
  });
45
49
  function waitUntil(promiseLike) {
@@ -47,12 +51,13 @@ function createServerAdapter(serverAdapterBaseObject, options) {
47
51
  if (globalThis.process) {
48
52
  ensureDisposableStackRegisteredForTerminateEvents(disposableStack);
49
53
  }
50
- waitUntilPromises.add(promiseLike.then(() => {
54
+ waitUntilPromises.add(promiseLike);
55
+ promiseLike.then(() => {
51
56
  waitUntilPromises.delete(promiseLike);
52
57
  }, err => {
53
58
  console.error(`Unexpected error while waiting: ${err.message || err}`);
54
59
  waitUntilPromises.delete(promiseLike);
55
- }));
60
+ });
56
61
  }
57
62
  if (options?.plugins != null) {
58
63
  for (const plugin of options.plugins) {
@@ -44,7 +44,6 @@ export function useContentEncoding() {
44
44
  }
45
45
  },
46
46
  onResponse({ request, response, setResponse, fetchAPI, serverContext }) {
47
- const waitUntil = serverContext.waitUntil?.bind(serverContext) || (() => { });
48
47
  // Hack for avoiding to create whatwg-node to create a readable stream until it's needed
49
48
  if (response['bodyInit'] || response.body) {
50
49
  const encodings = encodingMap.get(request);
@@ -58,8 +57,10 @@ export function useContentEncoding() {
58
57
  const bufOfRes = response._buffer;
59
58
  if (bufOfRes) {
60
59
  const writer = compressionStream.writable.getWriter();
61
- waitUntil(writer.write(bufOfRes));
62
- waitUntil(writer.close());
60
+ const write$ = writer.write(bufOfRes);
61
+ serverContext.waitUntil?.(write$);
62
+ const close$ = writer.close();
63
+ serverContext.waitUntil?.(close$);
63
64
  const uint8Arrays$ = isReadable(compressionStream.readable['readable'])
64
65
  ? collectReadableValues(compressionStream.readable['readable'])
65
66
  : isAsyncIterable(compressionStream.readable)
@@ -77,7 +78,8 @@ export function useContentEncoding() {
77
78
  });
78
79
  decompressedResponseMap.set(compressedResponse, response);
79
80
  setResponse(compressedResponse);
80
- waitUntil(compressionStream.writable.close());
81
+ const close$ = compressionStream.writable.close();
82
+ serverContext.waitUntil?.(close$);
81
83
  });
82
84
  }
83
85
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whatwg-node/server",
3
- "version": "0.10.0-alpha-20241125130609-2d42652904068bfd5c22714b7277b8c77917aeba",
3
+ "version": "0.10.0-alpha-20241125134618-c16c2cc24251a5902f85c9dcc0ecdd373f7568ff",
4
4
  "description": "Fetch API compliant HTTP Server adapter",
5
5
  "sideEffects": false,
6
6
  "dependencies": {