File tree Expand file tree Collapse file tree 6 files changed +53
-212
lines changed
packages/react-router-node Expand file tree Collapse file tree 6 files changed +53
-212
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @react-router/node " : patch
3+ ---
4+
5+ Add createRequestListener to @react-router/node
6+
7+ Also, removed streaming utilities from @react-router/node since they are redundant.
Original file line number Diff line number Diff line change 1+ export { CreateRequestListenerOptions , createRequestListener } from "./server" ;
12export { createFileSessionStorage } from "./sessions/fileStorage" ;
2-
3- export {
4- createReadableStreamFromReadable ,
5- readableStreamToString ,
6- writeAsyncIterableToWritable ,
7- writeReadableStreamToWritable ,
8- } from "./stream" ;
Original file line number Diff line number Diff line change 6868 }
6969 },
7070 "dependencies" : {
71- "source-map-support" : " ^0.5.21" ,
72- "stream-slice" : " ^0.1.2" ,
73- "undici" : " ^6.19.2"
71+ "@mjackson/node-fetch-server" : " ^0.1.0"
7472 },
7573 "devDependencies" : {
76- "@types/source-map-support" : " ^0.5.4" ,
7774 "react-router" : " workspace:*" ,
7875 "tsup" : " ^8.3.0" ,
7976 "typescript" : " ^5.1.6" ,
Original file line number Diff line number Diff line change 1+ import type { RequestListener } from "node:http" ;
2+
3+ import type {
4+ AppLoadContext ,
5+ ServerBuild ,
6+ UNSAFE_ServerMode ,
7+ } from "react-router" ;
8+ import { createRequestHandler } from "react-router" ;
9+ import type { ClientAddress } from "@mjackson/node-fetch-server" ;
10+ import { createRequestListener as createRequestListener_ } from "@mjackson/node-fetch-server" ;
11+
12+ export interface CreateRequestListenerOptions {
13+ build : ServerBuild | ( ( ) => ServerBuild | Promise < ServerBuild > ) ;
14+ getLoadContext ?: (
15+ request : Request ,
16+ client : ClientAddress
17+ ) => AppLoadContext | Promise < AppLoadContext > ;
18+ mode ?: UNSAFE_ServerMode ;
19+ }
20+
21+ /**
22+ * Creates a request listener that handles requests using Node's built-in HTTP server.
23+ *
24+ * @param options Options for creating a request listener.
25+ * @returns A request listener that can be used with `http.createServer`.
26+ */
27+ export function createRequestListener (
28+ options : CreateRequestListenerOptions
29+ ) : RequestListener {
30+ let handleRequest = createRequestHandler ( options . build , options . mode ) ;
31+
32+ return createRequestListener_ ( async ( request , client ) => {
33+ let loadContext = await options . getLoadContext ?.( request , client ) ;
34+ return handleRequest ( request , loadContext ) ;
35+ } ) ;
36+ }
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments