@web-widget/node 0.4.0 → 0.4.2
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.cjs +29 -6
- package/dist/node.d.ts +10 -1
- package/dist/node.js +29 -7
- package/package.json +1 -1
package/dist/node.cjs
CHANGED
|
@@ -68,11 +68,9 @@ var NodeAdapter = class {
|
|
|
68
68
|
constructor(webRouter, options = {
|
|
69
69
|
defaultOrigin: webRouter?.origin ?? "https://web-widget.js.org"
|
|
70
70
|
}) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
)(webRouter.handler);
|
|
75
|
-
this.#middleware = toMiddleware(webRouter.handler, options);
|
|
71
|
+
const handler = webRouter.handler.bind(webRouter);
|
|
72
|
+
this.#handler = buildToNodeHandler(dependencies, options)(handler);
|
|
73
|
+
this.#middleware = toMiddleware(handler, options);
|
|
76
74
|
}
|
|
77
75
|
get middleware() {
|
|
78
76
|
return this.#middleware;
|
|
@@ -95,7 +93,11 @@ function toMiddleware(webHandler, options) {
|
|
|
95
93
|
const toFetchEvent = (0, import_node_utils.buildToFetchEvent)(dependencies);
|
|
96
94
|
return async function middleware(incomingMessage, serverResponse, next) {
|
|
97
95
|
const request = toRequest(incomingMessage, options);
|
|
98
|
-
const webResponse = await webHandler(
|
|
96
|
+
const webResponse = await webHandler(
|
|
97
|
+
request,
|
|
98
|
+
process.env,
|
|
99
|
+
toFetchEvent(request)
|
|
100
|
+
);
|
|
99
101
|
await toServerResponse(webResponse, serverResponse);
|
|
100
102
|
await next();
|
|
101
103
|
};
|
|
@@ -150,3 +152,24 @@ function checkWritable(serverResponse) {
|
|
|
150
152
|
return true;
|
|
151
153
|
return socket.writable;
|
|
152
154
|
}
|
|
155
|
+
function buildToNodeHandler(dependencies2, options) {
|
|
156
|
+
const toRequest = (0, import_node_utils.buildToRequest)(dependencies2);
|
|
157
|
+
const toFetchEvent = (0, import_node_utils.buildToFetchEvent)(dependencies2);
|
|
158
|
+
return function toNodeHandler(webHandler) {
|
|
159
|
+
return (incomingMessage, serverResponse) => {
|
|
160
|
+
const request = toRequest(incomingMessage, options);
|
|
161
|
+
const maybePromise = webHandler(
|
|
162
|
+
request,
|
|
163
|
+
process.env,
|
|
164
|
+
toFetchEvent(request)
|
|
165
|
+
);
|
|
166
|
+
if (maybePromise instanceof Promise) {
|
|
167
|
+
maybePromise.then(
|
|
168
|
+
(response) => toServerResponse(response, serverResponse)
|
|
169
|
+
);
|
|
170
|
+
} else {
|
|
171
|
+
toServerResponse(maybePromise, serverResponse);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
}
|
package/dist/node.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { RequestOptions,
|
|
1
|
+
import { RequestOptions, NodeHandler } from '@edge-runtime/node-utils';
|
|
2
2
|
import primitives from '@edge-runtime/primitives';
|
|
3
3
|
import { IncomingMessage, ServerResponse } from 'node:http';
|
|
4
4
|
|
|
5
|
+
type WebHandler = (req: Request, env: Record<string, unknown>, event: FetchEvent) => Promise<Response> | Response | null | undefined;
|
|
6
|
+
declare class FetchEvent {
|
|
7
|
+
request: Request;
|
|
8
|
+
awaiting: Set<Promise<void>>;
|
|
9
|
+
response: Response | null;
|
|
10
|
+
constructor(request: Request);
|
|
11
|
+
respondWith(response: Response): void;
|
|
12
|
+
waitUntil(): void;
|
|
13
|
+
}
|
|
5
14
|
interface NodeAdapterOptions extends RequestOptions {
|
|
6
15
|
}
|
|
7
16
|
interface Middleware {
|
package/dist/node.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import {
|
|
3
3
|
buildToFetchEvent,
|
|
4
|
-
buildToNodeHandler,
|
|
5
4
|
buildToRequest,
|
|
6
5
|
mergeIntoServerResponse,
|
|
7
6
|
toOutgoingHeaders
|
|
@@ -40,11 +39,9 @@ var NodeAdapter = class {
|
|
|
40
39
|
constructor(webRouter, options = {
|
|
41
40
|
defaultOrigin: webRouter?.origin ?? "https://web-widget.js.org"
|
|
42
41
|
}) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
)(webRouter.handler);
|
|
47
|
-
this.#middleware = toMiddleware(webRouter.handler, options);
|
|
42
|
+
const handler = webRouter.handler.bind(webRouter);
|
|
43
|
+
this.#handler = buildToNodeHandler(dependencies, options)(handler);
|
|
44
|
+
this.#middleware = toMiddleware(handler, options);
|
|
48
45
|
}
|
|
49
46
|
get middleware() {
|
|
50
47
|
return this.#middleware;
|
|
@@ -67,7 +64,11 @@ function toMiddleware(webHandler, options) {
|
|
|
67
64
|
const toFetchEvent = buildToFetchEvent(dependencies);
|
|
68
65
|
return async function middleware(incomingMessage, serverResponse, next) {
|
|
69
66
|
const request = toRequest(incomingMessage, options);
|
|
70
|
-
const webResponse = await webHandler(
|
|
67
|
+
const webResponse = await webHandler(
|
|
68
|
+
request,
|
|
69
|
+
process.env,
|
|
70
|
+
toFetchEvent(request)
|
|
71
|
+
);
|
|
71
72
|
await toServerResponse(webResponse, serverResponse);
|
|
72
73
|
await next();
|
|
73
74
|
};
|
|
@@ -122,6 +123,27 @@ function checkWritable(serverResponse) {
|
|
|
122
123
|
return true;
|
|
123
124
|
return socket.writable;
|
|
124
125
|
}
|
|
126
|
+
function buildToNodeHandler(dependencies2, options) {
|
|
127
|
+
const toRequest = buildToRequest(dependencies2);
|
|
128
|
+
const toFetchEvent = buildToFetchEvent(dependencies2);
|
|
129
|
+
return function toNodeHandler(webHandler) {
|
|
130
|
+
return (incomingMessage, serverResponse) => {
|
|
131
|
+
const request = toRequest(incomingMessage, options);
|
|
132
|
+
const maybePromise = webHandler(
|
|
133
|
+
request,
|
|
134
|
+
process.env,
|
|
135
|
+
toFetchEvent(request)
|
|
136
|
+
);
|
|
137
|
+
if (maybePromise instanceof Promise) {
|
|
138
|
+
maybePromise.then(
|
|
139
|
+
(response) => toServerResponse(response, serverResponse)
|
|
140
|
+
);
|
|
141
|
+
} else {
|
|
142
|
+
toServerResponse(maybePromise, serverResponse);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
}
|
|
125
147
|
export {
|
|
126
148
|
NodeAdapter as default
|
|
127
149
|
};
|