@react-router/architect 7.16.0 → 7.18.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/CHANGELOG.md +20 -0
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +12 -5
- package/dist/index.mjs +12 -5
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# `@react-router/architect`
|
|
2
2
|
|
|
3
|
+
## v7.18.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add a `useRequestContextDomainName` option to `createRequestHandler` to derive request URL hosts from the API Gateway request context. ([#15185](https://github.com/remix-run/react-router/pull/15185))
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies:
|
|
12
|
+
- [`react-router@7.18.0`](https://github.com/remix-run/react-router/releases/tag/react-router@7.18.0)
|
|
13
|
+
- [`@react-router/node@7.18.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/node@7.18.0)
|
|
14
|
+
|
|
15
|
+
## v7.17.0
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies:
|
|
20
|
+
- [`react-router@7.17.0`](https://github.com/remix-run/react-router/releases/tag/react-router@7.17.0)
|
|
21
|
+
- [`@react-router/node@7.17.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/node@7.17.0)
|
|
22
|
+
|
|
3
23
|
## v7.16.0
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -50,10 +50,11 @@ type RequestHandler = APIGatewayProxyHandlerV2;
|
|
|
50
50
|
* Returns a request handler for Architect that serves the response using
|
|
51
51
|
* React Router.
|
|
52
52
|
*/
|
|
53
|
-
declare function createRequestHandler({ build, getLoadContext, mode, }: {
|
|
53
|
+
declare function createRequestHandler({ build, getLoadContext, mode, useRequestContextDomainName, }: {
|
|
54
54
|
build: ServerBuild;
|
|
55
55
|
getLoadContext?: GetLoadContextFunction;
|
|
56
56
|
mode?: string;
|
|
57
|
+
useRequestContextDomainName?: boolean;
|
|
57
58
|
}): RequestHandler;
|
|
58
59
|
|
|
59
60
|
export { type GetLoadContextFunction, type RequestHandler, createArcTableSessionStorage, createRequestHandler };
|
package/dist/index.d.ts
CHANGED
|
@@ -50,10 +50,11 @@ type RequestHandler = APIGatewayProxyHandlerV2;
|
|
|
50
50
|
* Returns a request handler for Architect that serves the response using
|
|
51
51
|
* React Router.
|
|
52
52
|
*/
|
|
53
|
-
declare function createRequestHandler({ build, getLoadContext, mode, }: {
|
|
53
|
+
declare function createRequestHandler({ build, getLoadContext, mode, useRequestContextDomainName, }: {
|
|
54
54
|
build: ServerBuild;
|
|
55
55
|
getLoadContext?: GetLoadContextFunction;
|
|
56
56
|
mode?: string;
|
|
57
|
+
useRequestContextDomainName?: boolean;
|
|
57
58
|
}): RequestHandler;
|
|
58
59
|
|
|
59
60
|
export { type GetLoadContextFunction, type RequestHandler, createArcTableSessionStorage, createRequestHandler };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/architect v7.
|
|
2
|
+
* @react-router/architect v7.18.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -182,18 +182,25 @@ function isBinaryType(contentType) {
|
|
|
182
182
|
function createRequestHandler({
|
|
183
183
|
build,
|
|
184
184
|
getLoadContext,
|
|
185
|
-
mode = process.env.NODE_ENV
|
|
185
|
+
mode = process.env.NODE_ENV,
|
|
186
|
+
// TODO(v8): Remove this flag and make this the default behavior
|
|
187
|
+
useRequestContextDomainName = false
|
|
186
188
|
}) {
|
|
187
189
|
let handleRequest = (0, import_react_router2.createRequestHandler)(build, mode);
|
|
188
190
|
return async (event) => {
|
|
189
|
-
let request = createReactRouterRequest(event);
|
|
191
|
+
let request = createReactRouterRequest(event, useRequestContextDomainName);
|
|
190
192
|
let loadContext = await getLoadContext?.(event);
|
|
191
193
|
let response = await handleRequest(request, loadContext);
|
|
192
194
|
return sendReactRouterResponse(response);
|
|
193
195
|
};
|
|
194
196
|
}
|
|
195
|
-
function createReactRouterRequest(event) {
|
|
196
|
-
let
|
|
197
|
+
function createReactRouterRequest(event, useRequestContextDomainName = false) {
|
|
198
|
+
let rawHost = useRequestContextDomainName ? event.requestContext.domainName || event.headers.host || "" : event.headers["x-forwarded-host"] || event.headers.host || "";
|
|
199
|
+
let [hostname, portStr] = rawHost.split(":");
|
|
200
|
+
hostname = hostname.split(/[\\/?#@]/)[0] || "localhost";
|
|
201
|
+
let hostPort = Number.parseInt(portStr ?? "", 10);
|
|
202
|
+
let port = Number.isSafeInteger(hostPort) ? hostPort : void 0;
|
|
203
|
+
let host = `${hostname}${port ? `:${port}` : ""}`;
|
|
197
204
|
let search = event.rawQueryString.length ? `?${event.rawQueryString}` : "";
|
|
198
205
|
let scheme = process.env.ARC_SANDBOX ? "http" : "https";
|
|
199
206
|
let url = new URL(`${scheme}://${host}${event.rawPath}${search}`);
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @react-router/architect v7.
|
|
2
|
+
* @react-router/architect v7.18.0
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -146,18 +146,25 @@ function isBinaryType(contentType) {
|
|
|
146
146
|
function createRequestHandler({
|
|
147
147
|
build,
|
|
148
148
|
getLoadContext,
|
|
149
|
-
mode = process.env.NODE_ENV
|
|
149
|
+
mode = process.env.NODE_ENV,
|
|
150
|
+
// TODO(v8): Remove this flag and make this the default behavior
|
|
151
|
+
useRequestContextDomainName = false
|
|
150
152
|
}) {
|
|
151
153
|
let handleRequest = createReactRouterRequestHandler(build, mode);
|
|
152
154
|
return async (event) => {
|
|
153
|
-
let request = createReactRouterRequest(event);
|
|
155
|
+
let request = createReactRouterRequest(event, useRequestContextDomainName);
|
|
154
156
|
let loadContext = await getLoadContext?.(event);
|
|
155
157
|
let response = await handleRequest(request, loadContext);
|
|
156
158
|
return sendReactRouterResponse(response);
|
|
157
159
|
};
|
|
158
160
|
}
|
|
159
|
-
function createReactRouterRequest(event) {
|
|
160
|
-
let
|
|
161
|
+
function createReactRouterRequest(event, useRequestContextDomainName = false) {
|
|
162
|
+
let rawHost = useRequestContextDomainName ? event.requestContext.domainName || event.headers.host || "" : event.headers["x-forwarded-host"] || event.headers.host || "";
|
|
163
|
+
let [hostname, portStr] = rawHost.split(":");
|
|
164
|
+
hostname = hostname.split(/[\\/?#@]/)[0] || "localhost";
|
|
165
|
+
let hostPort = Number.parseInt(portStr ?? "", 10);
|
|
166
|
+
let port = Number.isSafeInteger(hostPort) ? hostPort : void 0;
|
|
167
|
+
let host = `${hostname}${port ? `:${port}` : ""}`;
|
|
161
168
|
let search = event.rawQueryString.length ? `?${event.rawQueryString}` : "";
|
|
162
169
|
let scheme = process.env.ARC_SANDBOX ? "http" : "https";
|
|
163
170
|
let url = new URL(`${scheme}://${host}${event.rawPath}${search}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/architect",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.18.0",
|
|
4
4
|
"description": "Architect server request handler for React Router",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/remix-run/react-router/issues"
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
"tsup": "^8.3.0",
|
|
60
60
|
"typescript": "^5.4.5",
|
|
61
61
|
"wireit": "0.14.9",
|
|
62
|
-
"@react-router/node": "7.
|
|
63
|
-
"react-router": "7.
|
|
62
|
+
"@react-router/node": "7.18.0",
|
|
63
|
+
"react-router": "7.18.0"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"typescript": "^5.1.0 || ^6.0.0",
|
|
67
|
-
"@react-router/node": "^7.
|
|
68
|
-
"react-router": "^7.
|
|
67
|
+
"@react-router/node": "^7.18.0",
|
|
68
|
+
"react-router": "^7.18.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependenciesMeta": {
|
|
71
71
|
"typescript": {
|