@whatwg-node/server 0.9.6 → 0.9.7-alpha-20230803155550-cfa41a9

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.
@@ -104,14 +104,19 @@ function createServerAdapter(serverAdapterBaseObject, options) {
104
104
  addWaitUntil(defaultServerContext, waitUntilPromises);
105
105
  return handleNodeRequest(nodeRequest, defaultServerContext, ...ctx)
106
106
  .then(response => {
107
- if (response) {
108
- return (0, utils_js_1.sendNodeResponse)(response, serverResponse, nodeRequest);
109
- }
110
- return new Promise(resolve => {
107
+ try {
108
+ if (serverResponse.closed || serverResponse.destroyed) {
109
+ return;
110
+ }
111
+ if (response) {
112
+ return (0, utils_js_1.sendNodeResponse)(response, serverResponse, nodeRequest);
113
+ }
111
114
  serverResponse.statusCode = 404;
112
- serverResponse.once('end', resolve);
113
115
  serverResponse.end();
114
- });
116
+ }
117
+ catch (e) {
118
+ console.error(`Unexpected error: ${e.message || e}`);
119
+ }
115
120
  })
116
121
  .finally(() => {
117
122
  if (waitUntilPromises.length > 0) {
@@ -132,16 +137,28 @@ function createServerAdapter(serverAdapterBaseObject, options) {
132
137
  res,
133
138
  fetchAPI,
134
139
  });
140
+ let resAborted = false;
141
+ res.onAborted(() => {
142
+ resAborted = true;
143
+ });
135
144
  return handleRequest(request, serverContext).then(response => {
136
- if (!response) {
137
- res.writeStatus('404 Not Found');
138
- res.end();
145
+ if (resAborted) {
139
146
  return;
140
147
  }
141
- return (0, uwebsockets_js_1.sendResponseToUwsOpts)({
142
- response,
143
- res,
144
- });
148
+ try {
149
+ if (!response) {
150
+ res.writeStatus('404 Not Found');
151
+ res.end();
152
+ return;
153
+ }
154
+ return (0, uwebsockets_js_1.sendResponseToUwsOpts)({
155
+ response,
156
+ res,
157
+ });
158
+ }
159
+ catch (e) {
160
+ console.error(`Unexpected error: ${e.message || e}`);
161
+ }
145
162
  });
146
163
  }
147
164
  function handleEvent(event, ...ctx) {
@@ -100,14 +100,19 @@ function createServerAdapter(serverAdapterBaseObject, options) {
100
100
  addWaitUntil(defaultServerContext, waitUntilPromises);
101
101
  return handleNodeRequest(nodeRequest, defaultServerContext, ...ctx)
102
102
  .then(response => {
103
- if (response) {
104
- return sendNodeResponse(response, serverResponse, nodeRequest);
105
- }
106
- return new Promise(resolve => {
103
+ try {
104
+ if (serverResponse.closed || serverResponse.destroyed) {
105
+ return;
106
+ }
107
+ if (response) {
108
+ return sendNodeResponse(response, serverResponse, nodeRequest);
109
+ }
107
110
  serverResponse.statusCode = 404;
108
- serverResponse.once('end', resolve);
109
111
  serverResponse.end();
110
- });
112
+ }
113
+ catch (e) {
114
+ console.error(`Unexpected error: ${e.message || e}`);
115
+ }
111
116
  })
112
117
  .finally(() => {
113
118
  if (waitUntilPromises.length > 0) {
@@ -128,16 +133,28 @@ function createServerAdapter(serverAdapterBaseObject, options) {
128
133
  res,
129
134
  fetchAPI,
130
135
  });
136
+ let resAborted = false;
137
+ res.onAborted(() => {
138
+ resAborted = true;
139
+ });
131
140
  return handleRequest(request, serverContext).then(response => {
132
- if (!response) {
133
- res.writeStatus('404 Not Found');
134
- res.end();
141
+ if (resAborted) {
135
142
  return;
136
143
  }
137
- return sendResponseToUwsOpts({
138
- response,
139
- res,
140
- });
144
+ try {
145
+ if (!response) {
146
+ res.writeStatus('404 Not Found');
147
+ res.end();
148
+ return;
149
+ }
150
+ return sendResponseToUwsOpts({
151
+ response,
152
+ res,
153
+ });
154
+ }
155
+ catch (e) {
156
+ console.error(`Unexpected error: ${e.message || e}`);
157
+ }
141
158
  });
142
159
  }
143
160
  function handleEvent(event, ...ctx) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whatwg-node/server",
3
- "version": "0.9.6",
3
+ "version": "0.9.7-alpha-20230803155550-cfa41a9",
4
4
  "description": "Fetch API compliant HTTP Server adapter",
5
5
  "sideEffects": false,
6
6
  "dependencies": {