@whatwg-node/server 0.1.0 → 0.2.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/index.d.ts CHANGED
@@ -2,7 +2,6 @@
2
2
  /// <reference lib="webworker" />
3
3
  import type { RequestListener, ServerResponse } from 'node:http';
4
4
  import { NodeRequest } from './utils';
5
- import { fetch } from '@whatwg-node/fetch';
6
5
  export interface CreateServerAdapterOptions<TServerContext, TBaseObject> {
7
6
  /**
8
7
  * WHATWG Fetch spec compliant `Request` constructor.
@@ -26,7 +25,11 @@ export interface ServerAdapterObject<TServerContext> extends EventListenerObject
26
25
  /**
27
26
  * WHATWG Fetch spec compliant `fetch` function that can be used for testing purposes.
28
27
  */
29
- fetch: typeof fetch | ((request: Request, ...ctx: any[]) => Promise<Response>);
28
+ fetch(request: Request, ...ctx: any[]): Promise<Response>;
29
+ fetch(urlStr: string, ...ctx: any[]): Promise<Response>;
30
+ fetch(urlStr: string, init: RequestInit, ...ctx: any[]): Promise<Response>;
31
+ fetch(url: URL, ...ctx: any[]): Promise<Response>;
32
+ fetch(url: URL, init: RequestInit, ...ctx: any[]): Promise<Response>;
30
33
  /**
31
34
  * This function takes Node's request object and returns a WHATWG Fetch spec compliant `Response` object.
32
35
  **/
@@ -40,7 +43,7 @@ export interface ServerAdapterObject<TServerContext> extends EventListenerObject
40
43
  */
41
44
  handle: RequestListener;
42
45
  }
43
- export declare type ServerAdapter<TServerContext, TBaseObject> = TBaseObject & RequestListener & ServerAdapterObject<TServerContext>;
46
+ export declare type ServerAdapter<TServerContext, TBaseObject> = TBaseObject & RequestListener & ServerAdapterObject<TServerContext>['fetch'] & ServerAdapterObject<TServerContext>;
44
47
  export declare function createServerAdapter<TServerContext = {
45
48
  req: NodeRequest;
46
49
  res: ServerResponse;
package/index.js CHANGED
@@ -102,6 +102,8 @@ function normalizeNodeRequest(nodeRequest, RequestCtor) {
102
102
  switch (prop) {
103
103
  case 'json':
104
104
  return async () => maybeParsedBody;
105
+ case 'text':
106
+ return async () => JSON.stringify(maybeParsedBody);
105
107
  default:
106
108
  return Reflect.get(target, prop, receiver);
107
109
  }
@@ -191,6 +193,11 @@ function createServerAdapter({ Request: RequestCtor = fetch.Request, handleReque
191
193
  handle: requestListener,
192
194
  };
193
195
  function genericRequestHandler(input, ctx) {
196
+ var _a;
197
+ if ('process' in globalThis && ((_a = process.versions) === null || _a === void 0 ? void 0 : _a['bun']) != null) {
198
+ // This is required for bun
199
+ input.text();
200
+ }
194
201
  // If it is a Node request
195
202
  if (isReadable(input) && ctx != null && isServerResponse(ctx)) {
196
203
  return requestListener(input, ctx);
package/index.mjs CHANGED
@@ -98,6 +98,8 @@ function normalizeNodeRequest(nodeRequest, RequestCtor) {
98
98
  switch (prop) {
99
99
  case 'json':
100
100
  return async () => maybeParsedBody;
101
+ case 'text':
102
+ return async () => JSON.stringify(maybeParsedBody);
101
103
  default:
102
104
  return Reflect.get(target, prop, receiver);
103
105
  }
@@ -187,6 +189,11 @@ function createServerAdapter({ Request: RequestCtor = Request, handleRequest, ba
187
189
  handle: requestListener,
188
190
  };
189
191
  function genericRequestHandler(input, ctx) {
192
+ var _a;
193
+ if ('process' in globalThis && ((_a = process.versions) === null || _a === void 0 ? void 0 : _a['bun']) != null) {
194
+ // This is required for bun
195
+ input.text();
196
+ }
190
197
  // If it is a Node request
191
198
  if (isReadable(input) && ctx != null && isServerResponse(ctx)) {
192
199
  return requestListener(input, ctx);
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@whatwg-node/server",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
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.2.9",
10
+ "@whatwg-node/fetch": "^0.4.0",
11
11
  "tslib": "^2.3.1"
12
12
  },
13
13
  "repository": {