@whatwg-node/server 0.4.9 → 0.4.10-alpha-20220926221307-730c2a6

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/index.d.ts CHANGED
@@ -2,18 +2,18 @@
2
2
  /// <reference lib="webworker" />
3
3
  import type { RequestListener, ServerResponse } from 'node:http';
4
4
  import { NodeRequest } from './utils';
5
- export interface ServerAdapterBaseObject<TServerContext, THandleRequest extends ServerAdapterRequestHandler<TServerContext> = ServerAdapterRequestHandler<TServerContext>> {
5
+ export interface ServerAdapterBaseObject<TServerContext> {
6
6
  /**
7
7
  * An async function that takes `Request` and the server context and returns a `Response`.
8
8
  * If you use `requestListener`, the server context is `{ req: IncomingMessage, res: ServerResponse }`.
9
9
  */
10
- handle: THandleRequest;
10
+ handle: ServerAdapterRequestHandler<TServerContext>;
11
11
  }
12
- export interface ServerAdapterObject<TServerContext, TBaseObject extends ServerAdapterBaseObject<TServerContext, ServerAdapterRequestHandler<TServerContext>>> extends EventListenerObject {
12
+ export interface ServerAdapterObject<TServerContext> extends EventListenerObject {
13
13
  /**
14
14
  * A basic request listener that takes a `Request` with the server context and returns a `Response`.
15
15
  */
16
- handleRequest: TBaseObject['handle'];
16
+ handleRequest: ServerAdapterRequestHandler<TServerContext>;
17
17
  /**
18
18
  * WHATWG Fetch spec compliant `fetch` function that can be used for testing purposes.
19
19
  */
@@ -35,6 +35,9 @@ export interface ServerAdapterObject<TServerContext, TBaseObject extends ServerA
35
35
  * A request listener function that can be used with any Node server variation.
36
36
  */
37
37
  requestListener: RequestListener;
38
+ /**
39
+ * Flexible and generic request handler for all environments.
40
+ */
38
41
  handle(req: NodeRequest, res: ServerResponse, ...ctx: Partial<TServerContext>[]): Promise<void>;
39
42
  handle(request: Request, ...ctx: Partial<TServerContext>[]): Promise<Response> | Response;
40
43
  handle(fetchEvent: FetchEvent & Partial<TServerContext>, ...ctx: Partial<TServerContext>[]): void;
@@ -42,13 +45,13 @@ export interface ServerAdapterObject<TServerContext, TBaseObject extends ServerA
42
45
  request: Request;
43
46
  } & Partial<TServerContext>, ...ctx: Partial<TServerContext>[]): Promise<Response> | Response;
44
47
  }
45
- export declare type ServerAdapter<TServerContext, TBaseObject extends ServerAdapterBaseObject<TServerContext>> = TBaseObject & ServerAdapterObject<TServerContext, TBaseObject>['handle'] & ServerAdapterObject<TServerContext, TBaseObject>;
48
+ export declare type ServerAdapter<TServerContext> = ServerAdapterObject<TServerContext>['handle'] & ServerAdapterObject<TServerContext>['requestListener'] & ServerAdapterObject<TServerContext>;
46
49
  export declare type ServerAdapterRequestHandler<TServerContext> = (request: Request, ctx: TServerContext) => Promise<Response> | Response;
47
- export declare type DefaultServerAdapterContext = {
50
+ export interface NodeServerAdapterContext {
48
51
  req: NodeRequest;
49
52
  res: ServerResponse;
50
53
  waitUntil(promise: Promise<unknown>): void;
51
- };
52
- declare function createServerAdapter<TServerContext = DefaultServerAdapterContext, THandleRequest extends ServerAdapterRequestHandler<TServerContext> = ServerAdapterRequestHandler<TServerContext>>(serverAdapterRequestHandler: THandleRequest, RequestCtor?: typeof Request): ServerAdapter<TServerContext, ServerAdapterBaseObject<TServerContext, THandleRequest>>;
53
- declare function createServerAdapter<TServerContext, TBaseObject extends ServerAdapterBaseObject<TServerContext>>(serverAdapterBaseObject: TBaseObject, RequestCtor?: typeof Request): ServerAdapter<TServerContext, TBaseObject>;
54
+ }
55
+ declare function createServerAdapter<TServerContext>(serverAdapterRequestHandler: ServerAdapterRequestHandler<TServerContext>, RequestCtor?: typeof Request): ServerAdapter<TServerContext>;
56
+ declare function createServerAdapter<TServerContext>(serverAdapterBaseObject: ServerAdapterBaseObject<TServerContext>, RequestCtor?: typeof Request): ServerAdapter<TServerContext>;
54
57
  export { createServerAdapter };
package/index.js CHANGED
@@ -230,14 +230,14 @@ RequestCtor = fetch.Request) {
230
230
  }
231
231
  async function requestListener(nodeRequest, serverResponse, ...ctx) {
232
232
  const waitUntilPromises = [];
233
- const defaultServerContext = {
233
+ const nodeServerContext = {
234
234
  req: nodeRequest,
235
235
  res: serverResponse,
236
236
  waitUntil(p) {
237
237
  waitUntilPromises.push(p);
238
238
  },
239
239
  };
240
- const response = await handleNodeRequest(nodeRequest, defaultServerContext, ...ctx);
240
+ const response = await handleNodeRequest(nodeRequest, nodeServerContext, ...ctx);
241
241
  if (response) {
242
242
  await sendNodeResponse(response, serverResponse);
243
243
  }
package/index.mjs CHANGED
@@ -226,14 +226,14 @@ RequestCtor = Request) {
226
226
  }
227
227
  async function requestListener(nodeRequest, serverResponse, ...ctx) {
228
228
  const waitUntilPromises = [];
229
- const defaultServerContext = {
229
+ const nodeServerContext = {
230
230
  req: nodeRequest,
231
231
  res: serverResponse,
232
232
  waitUntil(p) {
233
233
  waitUntilPromises.push(p);
234
234
  },
235
235
  };
236
- const response = await handleNodeRequest(nodeRequest, defaultServerContext, ...ctx);
236
+ const response = await handleNodeRequest(nodeRequest, nodeServerContext, ...ctx);
237
237
  if (response) {
238
238
  await sendNodeResponse(response, serverResponse);
239
239
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@whatwg-node/server",
3
- "version": "0.4.9",
3
+ "version": "0.4.10-alpha-20220926221307-730c2a6",
4
4
  "description": "Fetch API compliant HTTP Server adapter",
5
5
  "sideEffects": false,
6
6
  "peerDependencies": {
7
7
  "@types/node": "^18.0.6"
8
8
  },
9
9
  "dependencies": {
10
- "@whatwg-node/fetch": "0.4.5",
10
+ "@whatwg-node/fetch": "0.4.6-alpha-20220926221307-730c2a6",
11
11
  "tslib": "^2.3.1"
12
12
  },
13
13
  "repository": {