@web-widget/node 1.72.2 → 2.0.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.
- package/dist/node.js +49 -10
- package/package.json +1 -1
package/dist/node.js
CHANGED
|
@@ -63,12 +63,33 @@ function toMiddleware(webHandler, options) {
|
|
|
63
63
|
const toRequest = buildToRequest(dependencies);
|
|
64
64
|
const toFetchEvent = buildToFetchEvent(dependencies);
|
|
65
65
|
return async function middleware(incomingMessage, serverResponse, next) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
try {
|
|
67
|
+
const request = toRequest(incomingMessage, options);
|
|
68
|
+
const env = process.env;
|
|
69
|
+
const event = toFetchEvent(request);
|
|
70
|
+
const webResponse = await webHandler(request, env, event);
|
|
71
|
+
await toServerResponse(webResponse, serverResponse);
|
|
72
|
+
await next();
|
|
73
|
+
} catch (error) {
|
|
74
|
+
let responded = false;
|
|
75
|
+
if (checkWritable(serverResponse) && !serverResponse.headersSent) {
|
|
76
|
+
try {
|
|
77
|
+
serverResponse.statusCode = 500;
|
|
78
|
+
serverResponse.statusMessage = "Internal Server Error";
|
|
79
|
+
serverResponse.setHeader("content-type", "text/plain; charset=utf-8");
|
|
80
|
+
serverResponse.end(
|
|
81
|
+
error instanceof Error ? error.message : "Internal Server Error"
|
|
82
|
+
);
|
|
83
|
+
responded = true;
|
|
84
|
+
} catch {
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (responded) {
|
|
88
|
+
next();
|
|
89
|
+
} else {
|
|
90
|
+
next(error);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
72
93
|
};
|
|
73
94
|
}
|
|
74
95
|
async function toServerResponse(webResponse, serverResponse) {
|
|
@@ -129,11 +150,29 @@ function buildToNodeHandler(dependencies2, options) {
|
|
|
129
150
|
const event = toFetchEvent(request);
|
|
130
151
|
const maybePromise = webHandler(request, env, event);
|
|
131
152
|
if (maybePromise instanceof Promise) {
|
|
132
|
-
maybePromise.then(
|
|
133
|
-
(
|
|
134
|
-
|
|
153
|
+
maybePromise.then((response) => toServerResponse(response, serverResponse)).catch(() => {
|
|
154
|
+
if (checkWritable(serverResponse) && !serverResponse.headersSent) {
|
|
155
|
+
serverResponse.statusCode = 500;
|
|
156
|
+
serverResponse.statusMessage = "Internal Server Error";
|
|
157
|
+
serverResponse.setHeader(
|
|
158
|
+
"content-type",
|
|
159
|
+
"text/plain; charset=utf-8"
|
|
160
|
+
);
|
|
161
|
+
serverResponse.end("Internal Server Error");
|
|
162
|
+
}
|
|
163
|
+
});
|
|
135
164
|
} else {
|
|
136
|
-
toServerResponse(maybePromise, serverResponse)
|
|
165
|
+
toServerResponse(maybePromise, serverResponse).catch(() => {
|
|
166
|
+
if (checkWritable(serverResponse) && !serverResponse.headersSent) {
|
|
167
|
+
serverResponse.statusCode = 500;
|
|
168
|
+
serverResponse.statusMessage = "Internal Server Error";
|
|
169
|
+
serverResponse.setHeader(
|
|
170
|
+
"content-type",
|
|
171
|
+
"text/plain; charset=utf-8"
|
|
172
|
+
);
|
|
173
|
+
serverResponse.end("Internal Server Error");
|
|
174
|
+
}
|
|
175
|
+
});
|
|
137
176
|
}
|
|
138
177
|
};
|
|
139
178
|
};
|