@whatwg-node/server 0.8.3 → 0.8.4
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/cjs/createServerAdapter.js +12 -4
- package/cjs/uwebsockets.js +11 -17
- package/esm/createServerAdapter.js +13 -5
- package/esm/uwebsockets.js +8 -15
- package/package.json +1 -1
- package/typings/uwebsockets.d.cts +8 -5
- package/typings/uwebsockets.d.ts +8 -5
|
@@ -102,12 +102,20 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
102
102
|
}
|
|
103
103
|
},
|
|
104
104
|
}, ...ctx);
|
|
105
|
-
|
|
106
|
-
res,
|
|
105
|
+
const request = (0, uwebsockets_js_1.getRequestFromUWSRequest)({
|
|
107
106
|
req,
|
|
108
|
-
|
|
107
|
+
res,
|
|
109
108
|
fetchAPI,
|
|
110
|
-
|
|
109
|
+
});
|
|
110
|
+
const response = await handleRequest(request, serverContext);
|
|
111
|
+
if (!response) {
|
|
112
|
+
res.writeStatus('404 Not Found');
|
|
113
|
+
res.end();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
return (0, uwebsockets_js_1.sendResponseToUwsOpts)({
|
|
117
|
+
response,
|
|
118
|
+
res,
|
|
111
119
|
});
|
|
112
120
|
}
|
|
113
121
|
function handleEvent(event, ...ctx) {
|
package/cjs/uwebsockets.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.sendResponseToUwsOpts = exports.getRequestFromUWSRequest = exports.getHeadersFromUWSRequest = exports.isUWSResponse = void 0;
|
|
4
4
|
const repeater_1 = require("@repeaterjs/repeater");
|
|
5
5
|
function isUWSResponse(res) {
|
|
6
6
|
return typeof res === 'object' && typeof res.onData === 'function';
|
|
@@ -60,13 +60,9 @@ function getHeadersFromUWSRequest(req) {
|
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
exports.getHeadersFromUWSRequest = getHeadersFromUWSRequest;
|
|
63
|
-
|
|
63
|
+
function getRequestFromUWSRequest({ req, res, fetchAPI }) {
|
|
64
64
|
let body;
|
|
65
65
|
const method = req.getMethod();
|
|
66
|
-
let resAborted = false;
|
|
67
|
-
res.onAborted(function () {
|
|
68
|
-
resAborted = true;
|
|
69
|
-
});
|
|
70
66
|
if (method !== 'get' && method !== 'head') {
|
|
71
67
|
body = new repeater_1.Repeater(function (push, stop) {
|
|
72
68
|
res.onAborted(stop);
|
|
@@ -80,20 +76,18 @@ async function handleUWSWithHandler({ res, req, serverContext, fetchAPI, handleR
|
|
|
80
76
|
}
|
|
81
77
|
const headers = getHeadersFromUWSRequest(req);
|
|
82
78
|
const url = `http://localhost${req.getUrl()}`;
|
|
83
|
-
|
|
79
|
+
return new fetchAPI.Request(url, {
|
|
84
80
|
method,
|
|
85
81
|
headers,
|
|
86
82
|
body: body,
|
|
87
83
|
});
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
84
|
+
}
|
|
85
|
+
exports.getRequestFromUWSRequest = getRequestFromUWSRequest;
|
|
86
|
+
async function sendResponseToUwsOpts({ res, response }) {
|
|
87
|
+
let resAborted = false;
|
|
88
|
+
res.onAborted(function () {
|
|
89
|
+
resAborted = true;
|
|
90
|
+
});
|
|
97
91
|
res.cork(() => {
|
|
98
92
|
res.writeStatus(`${response.status} ${response.statusText}`);
|
|
99
93
|
});
|
|
@@ -127,4 +121,4 @@ async function handleUWSWithHandler({ res, req, serverContext, fetchAPI, handleR
|
|
|
127
121
|
res.end();
|
|
128
122
|
});
|
|
129
123
|
}
|
|
130
|
-
exports.
|
|
124
|
+
exports.sendResponseToUwsOpts = sendResponseToUwsOpts;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
2
|
import * as DefaultFetchAPI from '@whatwg-node/fetch';
|
|
3
3
|
import { completeAssign, handleOnRequestHook, isFetchEvent, isNodeRequest, isRequestInit, isServerResponse, normalizeNodeRequest, sendNodeResponse, } from './utils.js';
|
|
4
|
-
import {
|
|
4
|
+
import { getRequestFromUWSRequest, isUWSResponse, sendResponseToUwsOpts, } from './uwebsockets.js';
|
|
5
5
|
async function handleWaitUntils(waitUntilPromises) {
|
|
6
6
|
const waitUntils = await Promise.allSettled(waitUntilPromises);
|
|
7
7
|
waitUntils.forEach(waitUntil => {
|
|
@@ -98,12 +98,20 @@ function createServerAdapter(serverAdapterBaseObject, options) {
|
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
100
|
}, ...ctx);
|
|
101
|
-
|
|
102
|
-
res,
|
|
101
|
+
const request = getRequestFromUWSRequest({
|
|
103
102
|
req,
|
|
104
|
-
|
|
103
|
+
res,
|
|
105
104
|
fetchAPI,
|
|
106
|
-
|
|
105
|
+
});
|
|
106
|
+
const response = await handleRequest(request, serverContext);
|
|
107
|
+
if (!response) {
|
|
108
|
+
res.writeStatus('404 Not Found');
|
|
109
|
+
res.end();
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
return sendResponseToUwsOpts({
|
|
113
|
+
response,
|
|
114
|
+
res,
|
|
107
115
|
});
|
|
108
116
|
}
|
|
109
117
|
function handleEvent(event, ...ctx) {
|
package/esm/uwebsockets.js
CHANGED
|
@@ -55,13 +55,9 @@ export function getHeadersFromUWSRequest(req) {
|
|
|
55
55
|
},
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
export
|
|
58
|
+
export function getRequestFromUWSRequest({ req, res, fetchAPI }) {
|
|
59
59
|
let body;
|
|
60
60
|
const method = req.getMethod();
|
|
61
|
-
let resAborted = false;
|
|
62
|
-
res.onAborted(function () {
|
|
63
|
-
resAborted = true;
|
|
64
|
-
});
|
|
65
61
|
if (method !== 'get' && method !== 'head') {
|
|
66
62
|
body = new Repeater(function (push, stop) {
|
|
67
63
|
res.onAborted(stop);
|
|
@@ -75,20 +71,17 @@ export async function handleUWSWithHandler({ res, req, serverContext, fetchAPI,
|
|
|
75
71
|
}
|
|
76
72
|
const headers = getHeadersFromUWSRequest(req);
|
|
77
73
|
const url = `http://localhost${req.getUrl()}`;
|
|
78
|
-
|
|
74
|
+
return new fetchAPI.Request(url, {
|
|
79
75
|
method,
|
|
80
76
|
headers,
|
|
81
77
|
body: body,
|
|
82
78
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
res.end();
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
79
|
+
}
|
|
80
|
+
export async function sendResponseToUwsOpts({ res, response }) {
|
|
81
|
+
let resAborted = false;
|
|
82
|
+
res.onAborted(function () {
|
|
83
|
+
resAborted = true;
|
|
84
|
+
});
|
|
92
85
|
res.cork(() => {
|
|
93
86
|
res.writeStatus(`${response.status} ${response.statusText}`);
|
|
94
87
|
});
|
package/package.json
CHANGED
|
@@ -17,12 +17,15 @@ export interface UWSResponse {
|
|
|
17
17
|
export type UWSHandler = (res: UWSResponse, req: UWSRequest) => void | Promise<void>;
|
|
18
18
|
export declare function isUWSResponse(res: any): res is UWSResponse;
|
|
19
19
|
export declare function getHeadersFromUWSRequest(req: UWSRequest): Headers;
|
|
20
|
-
interface
|
|
21
|
-
res: UWSResponse;
|
|
20
|
+
interface GetRequestFromUWSOpts {
|
|
22
21
|
req: UWSRequest;
|
|
23
|
-
|
|
22
|
+
res: UWSResponse;
|
|
24
23
|
fetchAPI: FetchAPI;
|
|
25
|
-
handleRequest(request: Request, ctx: any): Response | void | Promise<Response | void>;
|
|
26
24
|
}
|
|
27
|
-
export declare function
|
|
25
|
+
export declare function getRequestFromUWSRequest({ req, res, fetchAPI }: GetRequestFromUWSOpts): Request;
|
|
26
|
+
interface SendResponseToUWSOpts {
|
|
27
|
+
res: UWSResponse;
|
|
28
|
+
response: Response;
|
|
29
|
+
}
|
|
30
|
+
export declare function sendResponseToUwsOpts({ res, response }: SendResponseToUWSOpts): Promise<void>;
|
|
28
31
|
export {};
|
package/typings/uwebsockets.d.ts
CHANGED
|
@@ -17,12 +17,15 @@ export interface UWSResponse {
|
|
|
17
17
|
export type UWSHandler = (res: UWSResponse, req: UWSRequest) => void | Promise<void>;
|
|
18
18
|
export declare function isUWSResponse(res: any): res is UWSResponse;
|
|
19
19
|
export declare function getHeadersFromUWSRequest(req: UWSRequest): Headers;
|
|
20
|
-
interface
|
|
21
|
-
res: UWSResponse;
|
|
20
|
+
interface GetRequestFromUWSOpts {
|
|
22
21
|
req: UWSRequest;
|
|
23
|
-
|
|
22
|
+
res: UWSResponse;
|
|
24
23
|
fetchAPI: FetchAPI;
|
|
25
|
-
handleRequest(request: Request, ctx: any): Response | void | Promise<Response | void>;
|
|
26
24
|
}
|
|
27
|
-
export declare function
|
|
25
|
+
export declare function getRequestFromUWSRequest({ req, res, fetchAPI }: GetRequestFromUWSOpts): Request;
|
|
26
|
+
interface SendResponseToUWSOpts {
|
|
27
|
+
res: UWSResponse;
|
|
28
|
+
response: Response;
|
|
29
|
+
}
|
|
30
|
+
export declare function sendResponseToUwsOpts({ res, response }: SendResponseToUWSOpts): Promise<void>;
|
|
28
31
|
export {};
|