@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 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
- this.#handler = (0, import_node_utils.buildToNodeHandler)(
72
- dependencies,
73
- options
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(request, toFetchEvent(request));
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, WebHandler, NodeHandler } from '@edge-runtime/node-utils';
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
- this.#handler = buildToNodeHandler(
44
- dependencies,
45
- options
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(request, toFetchEvent(request));
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
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web-widget/node",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {