@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 +6 -3
- package/index.js +7 -0
- package/index.mjs +7 -0
- package/package.json +2 -2
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
|
|
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.
|
|
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.
|
|
10
|
+
"@whatwg-node/fetch": "^0.4.0",
|
|
11
11
|
"tslib": "^2.3.1"
|
|
12
12
|
},
|
|
13
13
|
"repository": {
|