@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.
@@ -102,12 +102,20 @@ function createServerAdapter(serverAdapterBaseObject, options) {
102
102
  }
103
103
  },
104
104
  }, ...ctx);
105
- return (0, uwebsockets_js_1.handleUWSWithHandler)({
106
- res,
105
+ const request = (0, uwebsockets_js_1.getRequestFromUWSRequest)({
107
106
  req,
108
- serverContext,
107
+ res,
109
108
  fetchAPI,
110
- handleRequest,
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) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleUWSWithHandler = exports.getHeadersFromUWSRequest = exports.isUWSResponse = void 0;
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
- async function handleUWSWithHandler({ res, req, serverContext, fetchAPI, handleRequest, }) {
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
- const request = new fetchAPI.Request(url, {
79
+ return new fetchAPI.Request(url, {
84
80
  method,
85
81
  headers,
86
82
  body: body,
87
83
  });
88
- const response = await handleRequest(request, serverContext);
89
- if (resAborted) {
90
- return;
91
- }
92
- if (!response) {
93
- res.writeStatus('404 Not Found');
94
- res.end();
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.handleUWSWithHandler = handleUWSWithHandler;
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 { handleUWSWithHandler, isUWSResponse, } from './uwebsockets.js';
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
- return handleUWSWithHandler({
102
- res,
101
+ const request = getRequestFromUWSRequest({
103
102
  req,
104
- serverContext,
103
+ res,
105
104
  fetchAPI,
106
- handleRequest,
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) {
@@ -55,13 +55,9 @@ export function getHeadersFromUWSRequest(req) {
55
55
  },
56
56
  };
57
57
  }
58
- export async function handleUWSWithHandler({ res, req, serverContext, fetchAPI, handleRequest, }) {
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
- const request = new fetchAPI.Request(url, {
74
+ return new fetchAPI.Request(url, {
79
75
  method,
80
76
  headers,
81
77
  body: body,
82
78
  });
83
- const response = await handleRequest(request, serverContext);
84
- if (resAborted) {
85
- return;
86
- }
87
- if (!response) {
88
- res.writeStatus('404 Not Found');
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whatwg-node/server",
3
- "version": "0.8.3",
3
+ "version": "0.8.4",
4
4
  "description": "Fetch API compliant HTTP Server adapter",
5
5
  "sideEffects": false,
6
6
  "dependencies": {
@@ -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 UWSHandlerOpts {
21
- res: UWSResponse;
20
+ interface GetRequestFromUWSOpts {
22
21
  req: UWSRequest;
23
- serverContext: any;
22
+ res: UWSResponse;
24
23
  fetchAPI: FetchAPI;
25
- handleRequest(request: Request, ctx: any): Response | void | Promise<Response | void>;
26
24
  }
27
- export declare function handleUWSWithHandler({ res, req, serverContext, fetchAPI, handleRequest, }: UWSHandlerOpts): Promise<void>;
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 {};
@@ -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 UWSHandlerOpts {
21
- res: UWSResponse;
20
+ interface GetRequestFromUWSOpts {
22
21
  req: UWSRequest;
23
- serverContext: any;
22
+ res: UWSResponse;
24
23
  fetchAPI: FetchAPI;
25
- handleRequest(request: Request, ctx: any): Response | void | Promise<Response | void>;
26
24
  }
27
- export declare function handleUWSWithHandler({ res, req, serverContext, fetchAPI, handleRequest, }: UWSHandlerOpts): Promise<void>;
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 {};