@web-widget/node 0.4.0 → 0.4.1

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,7 +68,7 @@ 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)(
71
+ this.#handler = buildToNodeHandler(
72
72
  dependencies,
73
73
  options
74
74
  )(webRouter.handler);
@@ -95,7 +95,11 @@ function toMiddleware(webHandler, options) {
95
95
  const toFetchEvent = (0, import_node_utils.buildToFetchEvent)(dependencies);
96
96
  return async function middleware(incomingMessage, serverResponse, next) {
97
97
  const request = toRequest(incomingMessage, options);
98
- const webResponse = await webHandler(request, toFetchEvent(request));
98
+ const webResponse = await webHandler(
99
+ request,
100
+ process.env,
101
+ toFetchEvent(request)
102
+ );
99
103
  await toServerResponse(webResponse, serverResponse);
100
104
  await next();
101
105
  };
@@ -150,3 +154,24 @@ function checkWritable(serverResponse) {
150
154
  return true;
151
155
  return socket.writable;
152
156
  }
157
+ function buildToNodeHandler(dependencies2, options) {
158
+ const toRequest = (0, import_node_utils.buildToRequest)(dependencies2);
159
+ const toFetchEvent = (0, import_node_utils.buildToFetchEvent)(dependencies2);
160
+ return function toNodeHandler(webHandler) {
161
+ return (incomingMessage, serverResponse) => {
162
+ const request = toRequest(incomingMessage, options);
163
+ const maybePromise = webHandler(
164
+ request,
165
+ process.env,
166
+ toFetchEvent(request)
167
+ );
168
+ if (maybePromise instanceof Promise) {
169
+ maybePromise.then(
170
+ (response) => toServerResponse(response, serverResponse)
171
+ );
172
+ } else {
173
+ toServerResponse(maybePromise, serverResponse);
174
+ }
175
+ };
176
+ };
177
+ }
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
@@ -67,7 +66,11 @@ function toMiddleware(webHandler, options) {
67
66
  const toFetchEvent = buildToFetchEvent(dependencies);
68
67
  return async function middleware(incomingMessage, serverResponse, next) {
69
68
  const request = toRequest(incomingMessage, options);
70
- const webResponse = await webHandler(request, toFetchEvent(request));
69
+ const webResponse = await webHandler(
70
+ request,
71
+ process.env,
72
+ toFetchEvent(request)
73
+ );
71
74
  await toServerResponse(webResponse, serverResponse);
72
75
  await next();
73
76
  };
@@ -122,6 +125,27 @@ function checkWritable(serverResponse) {
122
125
  return true;
123
126
  return socket.writable;
124
127
  }
128
+ function buildToNodeHandler(dependencies2, options) {
129
+ const toRequest = buildToRequest(dependencies2);
130
+ const toFetchEvent = buildToFetchEvent(dependencies2);
131
+ return function toNodeHandler(webHandler) {
132
+ return (incomingMessage, serverResponse) => {
133
+ const request = toRequest(incomingMessage, options);
134
+ const maybePromise = webHandler(
135
+ request,
136
+ process.env,
137
+ toFetchEvent(request)
138
+ );
139
+ if (maybePromise instanceof Promise) {
140
+ maybePromise.then(
141
+ (response) => toServerResponse(response, serverResponse)
142
+ );
143
+ } else {
144
+ toServerResponse(maybePromise, serverResponse);
145
+ }
146
+ };
147
+ };
148
+ }
125
149
  export {
126
150
  NodeAdapter as default
127
151
  };
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.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {