react-router 0.0.0-experimental-7db49e8d4 → 0.0.0-experimental-bafa092e7
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/dist/development/{chunk-UKHDCHH6.mjs → chunk-Q2DCDB5W.mjs} +4 -18
- package/dist/development/dom-export.js +1 -1
- package/dist/development/dom-export.mjs +2 -2
- package/dist/development/index.js +4 -18
- package/dist/development/index.mjs +2 -2
- package/dist/development/lib/types/internal.js +1 -1
- package/dist/development/lib/types/internal.mjs +1 -1
- package/dist/development/rsc-export.js +81 -18
- package/dist/development/rsc-export.mjs +81 -18
- package/dist/production/{chunk-ZA7BCDUO.mjs → chunk-PBF6AAQR.mjs} +4 -18
- package/dist/production/dom-export.js +1 -1
- package/dist/production/dom-export.mjs +2 -2
- package/dist/production/index.js +4 -18
- package/dist/production/index.mjs +2 -2
- package/dist/production/lib/types/internal.js +1 -1
- package/dist/production/lib/types/internal.mjs +1 -1
- package/dist/production/rsc-export.js +81 -18
- package/dist/production/rsc-export.mjs +81 -18
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8796,7 +8796,7 @@ function mergeRefs(...refs) {
|
|
|
8796
8796
|
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
|
8797
8797
|
try {
|
|
8798
8798
|
if (isBrowser) {
|
|
8799
|
-
window.__reactRouterVersion = "0.0.0-experimental-
|
|
8799
|
+
window.__reactRouterVersion = "0.0.0-experimental-bafa092e7";
|
|
8800
8800
|
}
|
|
8801
8801
|
} catch (e) {
|
|
8802
8802
|
}
|
|
@@ -12091,24 +12091,10 @@ async function routeRSCServerRequest({
|
|
|
12091
12091
|
hydrate: hydrate2 = true
|
|
12092
12092
|
}) {
|
|
12093
12093
|
const url = new URL(request.url);
|
|
12094
|
-
let serverRequest = request;
|
|
12095
12094
|
const isDataRequest = isReactServerRequest(url);
|
|
12096
12095
|
const respondWithRSCPayload = isDataRequest || isManifestRequest(url) || request.headers.has("rsc-action-id");
|
|
12097
|
-
|
|
12098
|
-
|
|
12099
|
-
serverURL.pathname = serverURL.pathname.replace(/(_root)?\.rsc$/, "");
|
|
12100
|
-
let headers = new Headers(request.headers);
|
|
12101
|
-
headers.set("X-React-Router-Data-Request", "true");
|
|
12102
|
-
serverRequest = new Request(serverURL, {
|
|
12103
|
-
body: request.body,
|
|
12104
|
-
duplex: request.body ? "half" : void 0,
|
|
12105
|
-
headers,
|
|
12106
|
-
method: request.method,
|
|
12107
|
-
signal: request.signal
|
|
12108
|
-
});
|
|
12109
|
-
}
|
|
12110
|
-
const serverResponse = await callServer(serverRequest);
|
|
12111
|
-
if (respondWithRSCPayload) {
|
|
12096
|
+
const serverResponse = await callServer(request);
|
|
12097
|
+
if (respondWithRSCPayload || serverResponse.headers.get("React-Router-Resource") === "true") {
|
|
12112
12098
|
return serverResponse;
|
|
12113
12099
|
}
|
|
12114
12100
|
if (!serverResponse.body) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
invariant,
|
|
27
27
|
mapRouteProperties,
|
|
28
28
|
useFogOFWarDiscovery
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-Q2DCDB5W.mjs";
|
|
30
30
|
|
|
31
31
|
// lib/dom-export/dom-router-provider.tsx
|
|
32
32
|
import * as React from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8955,7 +8955,7 @@ function mergeRefs(...refs) {
|
|
|
8955
8955
|
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
|
8956
8956
|
try {
|
|
8957
8957
|
if (isBrowser) {
|
|
8958
|
-
window.__reactRouterVersion = "0.0.0-experimental-
|
|
8958
|
+
window.__reactRouterVersion = "0.0.0-experimental-bafa092e7";
|
|
8959
8959
|
}
|
|
8960
8960
|
} catch (e) {
|
|
8961
8961
|
}
|
|
@@ -12250,24 +12250,10 @@ async function routeRSCServerRequest({
|
|
|
12250
12250
|
hydrate: hydrate2 = true
|
|
12251
12251
|
}) {
|
|
12252
12252
|
const url = new URL(request.url);
|
|
12253
|
-
let serverRequest = request;
|
|
12254
12253
|
const isDataRequest = isReactServerRequest(url);
|
|
12255
12254
|
const respondWithRSCPayload = isDataRequest || isManifestRequest(url) || request.headers.has("rsc-action-id");
|
|
12256
|
-
|
|
12257
|
-
|
|
12258
|
-
serverURL.pathname = serverURL.pathname.replace(/(_root)?\.rsc$/, "");
|
|
12259
|
-
let headers = new Headers(request.headers);
|
|
12260
|
-
headers.set("X-React-Router-Data-Request", "true");
|
|
12261
|
-
serverRequest = new Request(serverURL, {
|
|
12262
|
-
body: request.body,
|
|
12263
|
-
duplex: request.body ? "half" : void 0,
|
|
12264
|
-
headers,
|
|
12265
|
-
method: request.method,
|
|
12266
|
-
signal: request.signal
|
|
12267
|
-
});
|
|
12268
|
-
}
|
|
12269
|
-
const serverResponse = await callServer(serverRequest);
|
|
12270
|
-
if (respondWithRSCPayload) {
|
|
12255
|
+
const serverResponse = await callServer(request);
|
|
12256
|
+
if (respondWithRSCPayload || serverResponse.headers.get("React-Router-Resource") === "true") {
|
|
12271
12257
|
return serverResponse;
|
|
12272
12258
|
}
|
|
12273
12259
|
if (!serverResponse.body) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -134,7 +134,7 @@ import {
|
|
|
134
134
|
withComponentProps,
|
|
135
135
|
withErrorBoundaryProps,
|
|
136
136
|
withHydrateFallbackProps
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-Q2DCDB5W.mjs";
|
|
138
138
|
export {
|
|
139
139
|
Await,
|
|
140
140
|
BrowserRouter,
|
|
@@ -25,7 +25,7 @@ function _interopNamespace(e) {
|
|
|
25
25
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
* react-router v0.0.0-experimental-
|
|
28
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
29
29
|
*
|
|
30
30
|
* Copyright (c) Remix Software Inc.
|
|
31
31
|
*
|
|
@@ -2453,8 +2453,8 @@ async function matchRSCServerRequest({
|
|
|
2453
2453
|
routes,
|
|
2454
2454
|
generateResponse
|
|
2455
2455
|
}) {
|
|
2456
|
-
|
|
2457
|
-
if (isManifestRequest(
|
|
2456
|
+
let requestUrl = new URL(request.url);
|
|
2457
|
+
if (isManifestRequest(requestUrl)) {
|
|
2458
2458
|
let response2 = await generateManifestResponse(
|
|
2459
2459
|
routes,
|
|
2460
2460
|
request,
|
|
@@ -2462,9 +2462,36 @@ async function matchRSCServerRequest({
|
|
|
2462
2462
|
);
|
|
2463
2463
|
return response2;
|
|
2464
2464
|
}
|
|
2465
|
+
let isDataRequest = isReactServerRequest(requestUrl);
|
|
2466
|
+
const url = new URL(request.url);
|
|
2467
|
+
let routerRequest = request;
|
|
2468
|
+
if (isDataRequest) {
|
|
2469
|
+
url.pathname = url.pathname.replace(/(_root)?\.rsc$/, "");
|
|
2470
|
+
routerRequest = new Request(url.toString(), {
|
|
2471
|
+
method: request.method,
|
|
2472
|
+
headers: request.headers,
|
|
2473
|
+
body: request.body,
|
|
2474
|
+
signal: request.signal,
|
|
2475
|
+
duplex: request.body ? "half" : void 0
|
|
2476
|
+
});
|
|
2477
|
+
}
|
|
2478
|
+
let matches = matchRoutes(routes, url.pathname);
|
|
2479
|
+
if (matches) {
|
|
2480
|
+
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2481
|
+
}
|
|
2482
|
+
const leafMatch = matches?.[matches.length - 1];
|
|
2483
|
+
if (!isDataRequest && leafMatch && !leafMatch.route.Component && !leafMatch.route.ErrorBoundary) {
|
|
2484
|
+
return generateResourceResponse(
|
|
2485
|
+
routerRequest,
|
|
2486
|
+
routes,
|
|
2487
|
+
leafMatch.route.id,
|
|
2488
|
+
onError
|
|
2489
|
+
);
|
|
2490
|
+
}
|
|
2465
2491
|
let response = await generateRenderResponse(
|
|
2466
|
-
|
|
2492
|
+
routerRequest,
|
|
2467
2493
|
routes,
|
|
2494
|
+
isDataRequest,
|
|
2468
2495
|
decodeCallServer,
|
|
2469
2496
|
decodeFormAction,
|
|
2470
2497
|
onError,
|
|
@@ -2513,6 +2540,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2513
2540
|
headers: request.headers,
|
|
2514
2541
|
signal: request.signal
|
|
2515
2542
|
});
|
|
2543
|
+
const isFormRequest = canDecodeWithFormData(
|
|
2544
|
+
request.headers.get("Content-Type")
|
|
2545
|
+
);
|
|
2516
2546
|
const actionId = request.headers.get("rsc-action-id");
|
|
2517
2547
|
if (actionId) {
|
|
2518
2548
|
if (!decodeCallServer) {
|
|
@@ -2520,7 +2550,7 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2520
2550
|
"Cannot handle enhanced server action without a decodeCallServer function"
|
|
2521
2551
|
);
|
|
2522
2552
|
}
|
|
2523
|
-
const reply =
|
|
2553
|
+
const reply = isFormRequest ? await request.formData() : await request.text();
|
|
2524
2554
|
const serverAction = await decodeCallServer(actionId, reply);
|
|
2525
2555
|
let actionResult = Promise.resolve(serverAction());
|
|
2526
2556
|
try {
|
|
@@ -2535,10 +2565,8 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2535
2565
|
actionResult,
|
|
2536
2566
|
revalidationRequest: getRevalidationRequest()
|
|
2537
2567
|
};
|
|
2538
|
-
}
|
|
2539
|
-
|
|
2540
|
-
const clone = request.clone();
|
|
2541
|
-
const formData = await request.formData();
|
|
2568
|
+
} else if (isFormRequest) {
|
|
2569
|
+
const formData = await request.clone().formData();
|
|
2542
2570
|
if (Array.from(formData.keys()).some((k) => k.startsWith("$ACTION_"))) {
|
|
2543
2571
|
if (!decodeFormAction) {
|
|
2544
2572
|
throw new Error(
|
|
@@ -2558,21 +2586,53 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2558
2586
|
revalidationRequest: getRevalidationRequest()
|
|
2559
2587
|
};
|
|
2560
2588
|
}
|
|
2561
|
-
return {
|
|
2562
|
-
revalidationRequest: clone
|
|
2563
|
-
};
|
|
2564
2589
|
}
|
|
2565
2590
|
}
|
|
2566
|
-
async function
|
|
2591
|
+
async function generateResourceResponse(request, routes, routeId, onError) {
|
|
2592
|
+
let result;
|
|
2593
|
+
try {
|
|
2594
|
+
const staticHandler = createStaticHandler(routes, {
|
|
2595
|
+
// TODO: Support basename
|
|
2596
|
+
// basename
|
|
2597
|
+
});
|
|
2598
|
+
let response = await staticHandler.queryRoute(request, {
|
|
2599
|
+
routeId,
|
|
2600
|
+
// TODO: Support loadContext
|
|
2601
|
+
// requestContext: loadContext,
|
|
2602
|
+
unstable_respond: (ctx) => ctx
|
|
2603
|
+
});
|
|
2604
|
+
if (isResponse(response)) {
|
|
2605
|
+
result = response;
|
|
2606
|
+
} else {
|
|
2607
|
+
if (typeof response === "string") {
|
|
2608
|
+
result = new Response(response);
|
|
2609
|
+
} else {
|
|
2610
|
+
result = Response.json(response);
|
|
2611
|
+
}
|
|
2612
|
+
}
|
|
2613
|
+
} catch (error) {
|
|
2614
|
+
if (isResponse(error)) {
|
|
2615
|
+
result = error;
|
|
2616
|
+
} else {
|
|
2617
|
+
onError?.(error);
|
|
2618
|
+
result = new Response("Internal Server Error", {
|
|
2619
|
+
status: 500
|
|
2620
|
+
});
|
|
2621
|
+
}
|
|
2622
|
+
}
|
|
2623
|
+
const headers = new Headers(result.headers);
|
|
2624
|
+
headers.set("React-Router-Resource", "true");
|
|
2625
|
+
return new Response(result.body, {
|
|
2626
|
+
status: result.status,
|
|
2627
|
+
statusText: result.statusText,
|
|
2628
|
+
headers
|
|
2629
|
+
});
|
|
2630
|
+
}
|
|
2631
|
+
async function generateRenderResponse(request, routes, isDataRequest, decodeCallServer, decodeFormAction, onError, generateResponse) {
|
|
2567
2632
|
let statusCode = 200;
|
|
2568
2633
|
let url = new URL(request.url);
|
|
2569
|
-
let isDataRequest = request.headers.has("X-React-Router-Data-Request");
|
|
2570
2634
|
let isSubmission = isMutationMethod(request.method);
|
|
2571
2635
|
let routeIdsToLoad = !isSubmission && url.searchParams.has("_routes") ? url.searchParams.get("_routes").split(",") : null;
|
|
2572
|
-
let matches = matchRoutes(routes, url.pathname);
|
|
2573
|
-
if (matches) {
|
|
2574
|
-
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2575
|
-
}
|
|
2576
2636
|
const handler = createStaticHandler(routes, {
|
|
2577
2637
|
mapRouteProperties: (r) => ({
|
|
2578
2638
|
hasErrorBoundary: r.ErrorBoundary != null
|
|
@@ -2881,6 +2941,9 @@ async function getAdditionalRoutePatches(pathnames, routes, matchedRouteIds) {
|
|
|
2881
2941
|
);
|
|
2882
2942
|
return patches;
|
|
2883
2943
|
}
|
|
2944
|
+
function isReactServerRequest(url) {
|
|
2945
|
+
return url.pathname.endsWith(".rsc");
|
|
2946
|
+
}
|
|
2884
2947
|
function isManifestRequest(url) {
|
|
2885
2948
|
return url.pathname.endsWith(".manifest");
|
|
2886
2949
|
}
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { splitCookiesString } from 'set-cookie-parser';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* react-router v0.0.0-experimental-
|
|
6
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
7
7
|
*
|
|
8
8
|
* Copyright (c) Remix Software Inc.
|
|
9
9
|
*
|
|
@@ -2431,8 +2431,8 @@ async function matchRSCServerRequest({
|
|
|
2431
2431
|
routes,
|
|
2432
2432
|
generateResponse
|
|
2433
2433
|
}) {
|
|
2434
|
-
|
|
2435
|
-
if (isManifestRequest(
|
|
2434
|
+
let requestUrl = new URL(request.url);
|
|
2435
|
+
if (isManifestRequest(requestUrl)) {
|
|
2436
2436
|
let response2 = await generateManifestResponse(
|
|
2437
2437
|
routes,
|
|
2438
2438
|
request,
|
|
@@ -2440,9 +2440,36 @@ async function matchRSCServerRequest({
|
|
|
2440
2440
|
);
|
|
2441
2441
|
return response2;
|
|
2442
2442
|
}
|
|
2443
|
+
let isDataRequest = isReactServerRequest(requestUrl);
|
|
2444
|
+
const url = new URL(request.url);
|
|
2445
|
+
let routerRequest = request;
|
|
2446
|
+
if (isDataRequest) {
|
|
2447
|
+
url.pathname = url.pathname.replace(/(_root)?\.rsc$/, "");
|
|
2448
|
+
routerRequest = new Request(url.toString(), {
|
|
2449
|
+
method: request.method,
|
|
2450
|
+
headers: request.headers,
|
|
2451
|
+
body: request.body,
|
|
2452
|
+
signal: request.signal,
|
|
2453
|
+
duplex: request.body ? "half" : void 0
|
|
2454
|
+
});
|
|
2455
|
+
}
|
|
2456
|
+
let matches = matchRoutes(routes, url.pathname);
|
|
2457
|
+
if (matches) {
|
|
2458
|
+
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2459
|
+
}
|
|
2460
|
+
const leafMatch = matches?.[matches.length - 1];
|
|
2461
|
+
if (!isDataRequest && leafMatch && !leafMatch.route.Component && !leafMatch.route.ErrorBoundary) {
|
|
2462
|
+
return generateResourceResponse(
|
|
2463
|
+
routerRequest,
|
|
2464
|
+
routes,
|
|
2465
|
+
leafMatch.route.id,
|
|
2466
|
+
onError
|
|
2467
|
+
);
|
|
2468
|
+
}
|
|
2443
2469
|
let response = await generateRenderResponse(
|
|
2444
|
-
|
|
2470
|
+
routerRequest,
|
|
2445
2471
|
routes,
|
|
2472
|
+
isDataRequest,
|
|
2446
2473
|
decodeCallServer,
|
|
2447
2474
|
decodeFormAction,
|
|
2448
2475
|
onError,
|
|
@@ -2491,6 +2518,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2491
2518
|
headers: request.headers,
|
|
2492
2519
|
signal: request.signal
|
|
2493
2520
|
});
|
|
2521
|
+
const isFormRequest = canDecodeWithFormData(
|
|
2522
|
+
request.headers.get("Content-Type")
|
|
2523
|
+
);
|
|
2494
2524
|
const actionId = request.headers.get("rsc-action-id");
|
|
2495
2525
|
if (actionId) {
|
|
2496
2526
|
if (!decodeCallServer) {
|
|
@@ -2498,7 +2528,7 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2498
2528
|
"Cannot handle enhanced server action without a decodeCallServer function"
|
|
2499
2529
|
);
|
|
2500
2530
|
}
|
|
2501
|
-
const reply =
|
|
2531
|
+
const reply = isFormRequest ? await request.formData() : await request.text();
|
|
2502
2532
|
const serverAction = await decodeCallServer(actionId, reply);
|
|
2503
2533
|
let actionResult = Promise.resolve(serverAction());
|
|
2504
2534
|
try {
|
|
@@ -2513,10 +2543,8 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2513
2543
|
actionResult,
|
|
2514
2544
|
revalidationRequest: getRevalidationRequest()
|
|
2515
2545
|
};
|
|
2516
|
-
}
|
|
2517
|
-
|
|
2518
|
-
const clone = request.clone();
|
|
2519
|
-
const formData = await request.formData();
|
|
2546
|
+
} else if (isFormRequest) {
|
|
2547
|
+
const formData = await request.clone().formData();
|
|
2520
2548
|
if (Array.from(formData.keys()).some((k) => k.startsWith("$ACTION_"))) {
|
|
2521
2549
|
if (!decodeFormAction) {
|
|
2522
2550
|
throw new Error(
|
|
@@ -2536,21 +2564,53 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2536
2564
|
revalidationRequest: getRevalidationRequest()
|
|
2537
2565
|
};
|
|
2538
2566
|
}
|
|
2539
|
-
return {
|
|
2540
|
-
revalidationRequest: clone
|
|
2541
|
-
};
|
|
2542
2567
|
}
|
|
2543
2568
|
}
|
|
2544
|
-
async function
|
|
2569
|
+
async function generateResourceResponse(request, routes, routeId, onError) {
|
|
2570
|
+
let result;
|
|
2571
|
+
try {
|
|
2572
|
+
const staticHandler = createStaticHandler(routes, {
|
|
2573
|
+
// TODO: Support basename
|
|
2574
|
+
// basename
|
|
2575
|
+
});
|
|
2576
|
+
let response = await staticHandler.queryRoute(request, {
|
|
2577
|
+
routeId,
|
|
2578
|
+
// TODO: Support loadContext
|
|
2579
|
+
// requestContext: loadContext,
|
|
2580
|
+
unstable_respond: (ctx) => ctx
|
|
2581
|
+
});
|
|
2582
|
+
if (isResponse(response)) {
|
|
2583
|
+
result = response;
|
|
2584
|
+
} else {
|
|
2585
|
+
if (typeof response === "string") {
|
|
2586
|
+
result = new Response(response);
|
|
2587
|
+
} else {
|
|
2588
|
+
result = Response.json(response);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
} catch (error) {
|
|
2592
|
+
if (isResponse(error)) {
|
|
2593
|
+
result = error;
|
|
2594
|
+
} else {
|
|
2595
|
+
onError?.(error);
|
|
2596
|
+
result = new Response("Internal Server Error", {
|
|
2597
|
+
status: 500
|
|
2598
|
+
});
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
const headers = new Headers(result.headers);
|
|
2602
|
+
headers.set("React-Router-Resource", "true");
|
|
2603
|
+
return new Response(result.body, {
|
|
2604
|
+
status: result.status,
|
|
2605
|
+
statusText: result.statusText,
|
|
2606
|
+
headers
|
|
2607
|
+
});
|
|
2608
|
+
}
|
|
2609
|
+
async function generateRenderResponse(request, routes, isDataRequest, decodeCallServer, decodeFormAction, onError, generateResponse) {
|
|
2545
2610
|
let statusCode = 200;
|
|
2546
2611
|
let url = new URL(request.url);
|
|
2547
|
-
let isDataRequest = request.headers.has("X-React-Router-Data-Request");
|
|
2548
2612
|
let isSubmission = isMutationMethod(request.method);
|
|
2549
2613
|
let routeIdsToLoad = !isSubmission && url.searchParams.has("_routes") ? url.searchParams.get("_routes").split(",") : null;
|
|
2550
|
-
let matches = matchRoutes(routes, url.pathname);
|
|
2551
|
-
if (matches) {
|
|
2552
|
-
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2553
|
-
}
|
|
2554
2614
|
const handler = createStaticHandler(routes, {
|
|
2555
2615
|
mapRouteProperties: (r) => ({
|
|
2556
2616
|
hasErrorBoundary: r.ErrorBoundary != null
|
|
@@ -2859,6 +2919,9 @@ async function getAdditionalRoutePatches(pathnames, routes, matchedRouteIds) {
|
|
|
2859
2919
|
);
|
|
2860
2920
|
return patches;
|
|
2861
2921
|
}
|
|
2922
|
+
function isReactServerRequest(url) {
|
|
2923
|
+
return url.pathname.endsWith(".rsc");
|
|
2924
|
+
}
|
|
2862
2925
|
function isManifestRequest(url) {
|
|
2863
2926
|
return url.pathname.endsWith(".manifest");
|
|
2864
2927
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8796,7 +8796,7 @@ function mergeRefs(...refs) {
|
|
|
8796
8796
|
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
|
8797
8797
|
try {
|
|
8798
8798
|
if (isBrowser) {
|
|
8799
|
-
window.__reactRouterVersion = "0.0.0-experimental-
|
|
8799
|
+
window.__reactRouterVersion = "0.0.0-experimental-bafa092e7";
|
|
8800
8800
|
}
|
|
8801
8801
|
} catch (e) {
|
|
8802
8802
|
}
|
|
@@ -12091,24 +12091,10 @@ async function routeRSCServerRequest({
|
|
|
12091
12091
|
hydrate: hydrate2 = true
|
|
12092
12092
|
}) {
|
|
12093
12093
|
const url = new URL(request.url);
|
|
12094
|
-
let serverRequest = request;
|
|
12095
12094
|
const isDataRequest = isReactServerRequest(url);
|
|
12096
12095
|
const respondWithRSCPayload = isDataRequest || isManifestRequest(url) || request.headers.has("rsc-action-id");
|
|
12097
|
-
|
|
12098
|
-
|
|
12099
|
-
serverURL.pathname = serverURL.pathname.replace(/(_root)?\.rsc$/, "");
|
|
12100
|
-
let headers = new Headers(request.headers);
|
|
12101
|
-
headers.set("X-React-Router-Data-Request", "true");
|
|
12102
|
-
serverRequest = new Request(serverURL, {
|
|
12103
|
-
body: request.body,
|
|
12104
|
-
duplex: request.body ? "half" : void 0,
|
|
12105
|
-
headers,
|
|
12106
|
-
method: request.method,
|
|
12107
|
-
signal: request.signal
|
|
12108
|
-
});
|
|
12109
|
-
}
|
|
12110
|
-
const serverResponse = await callServer(serverRequest);
|
|
12111
|
-
if (respondWithRSCPayload) {
|
|
12096
|
+
const serverResponse = await callServer(request);
|
|
12097
|
+
if (respondWithRSCPayload || serverResponse.headers.get("React-Router-Resource") === "true") {
|
|
12112
12098
|
return serverResponse;
|
|
12113
12099
|
}
|
|
12114
12100
|
if (!serverResponse.body) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
invariant,
|
|
27
27
|
mapRouteProperties,
|
|
28
28
|
useFogOFWarDiscovery
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-PBF6AAQR.mjs";
|
|
30
30
|
|
|
31
31
|
// lib/dom-export/dom-router-provider.tsx
|
|
32
32
|
import * as React from "react";
|
package/dist/production/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -8955,7 +8955,7 @@ function mergeRefs(...refs) {
|
|
|
8955
8955
|
var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
|
|
8956
8956
|
try {
|
|
8957
8957
|
if (isBrowser) {
|
|
8958
|
-
window.__reactRouterVersion = "0.0.0-experimental-
|
|
8958
|
+
window.__reactRouterVersion = "0.0.0-experimental-bafa092e7";
|
|
8959
8959
|
}
|
|
8960
8960
|
} catch (e) {
|
|
8961
8961
|
}
|
|
@@ -12250,24 +12250,10 @@ async function routeRSCServerRequest({
|
|
|
12250
12250
|
hydrate: hydrate2 = true
|
|
12251
12251
|
}) {
|
|
12252
12252
|
const url = new URL(request.url);
|
|
12253
|
-
let serverRequest = request;
|
|
12254
12253
|
const isDataRequest = isReactServerRequest(url);
|
|
12255
12254
|
const respondWithRSCPayload = isDataRequest || isManifestRequest(url) || request.headers.has("rsc-action-id");
|
|
12256
|
-
|
|
12257
|
-
|
|
12258
|
-
serverURL.pathname = serverURL.pathname.replace(/(_root)?\.rsc$/, "");
|
|
12259
|
-
let headers = new Headers(request.headers);
|
|
12260
|
-
headers.set("X-React-Router-Data-Request", "true");
|
|
12261
|
-
serverRequest = new Request(serverURL, {
|
|
12262
|
-
body: request.body,
|
|
12263
|
-
duplex: request.body ? "half" : void 0,
|
|
12264
|
-
headers,
|
|
12265
|
-
method: request.method,
|
|
12266
|
-
signal: request.signal
|
|
12267
|
-
});
|
|
12268
|
-
}
|
|
12269
|
-
const serverResponse = await callServer(serverRequest);
|
|
12270
|
-
if (respondWithRSCPayload) {
|
|
12255
|
+
const serverResponse = await callServer(request);
|
|
12256
|
+
if (respondWithRSCPayload || serverResponse.headers.get("React-Router-Resource") === "true") {
|
|
12271
12257
|
return serverResponse;
|
|
12272
12258
|
}
|
|
12273
12259
|
if (!serverResponse.body) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* react-router v0.0.0-experimental-
|
|
2
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Remix Software Inc.
|
|
5
5
|
*
|
|
@@ -134,7 +134,7 @@ import {
|
|
|
134
134
|
withComponentProps,
|
|
135
135
|
withErrorBoundaryProps,
|
|
136
136
|
withHydrateFallbackProps
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-PBF6AAQR.mjs";
|
|
138
138
|
export {
|
|
139
139
|
Await,
|
|
140
140
|
BrowserRouter,
|
|
@@ -25,7 +25,7 @@ function _interopNamespace(e) {
|
|
|
25
25
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
* react-router v0.0.0-experimental-
|
|
28
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
29
29
|
*
|
|
30
30
|
* Copyright (c) Remix Software Inc.
|
|
31
31
|
*
|
|
@@ -2453,8 +2453,8 @@ async function matchRSCServerRequest({
|
|
|
2453
2453
|
routes,
|
|
2454
2454
|
generateResponse
|
|
2455
2455
|
}) {
|
|
2456
|
-
|
|
2457
|
-
if (isManifestRequest(
|
|
2456
|
+
let requestUrl = new URL(request.url);
|
|
2457
|
+
if (isManifestRequest(requestUrl)) {
|
|
2458
2458
|
let response2 = await generateManifestResponse(
|
|
2459
2459
|
routes,
|
|
2460
2460
|
request,
|
|
@@ -2462,9 +2462,36 @@ async function matchRSCServerRequest({
|
|
|
2462
2462
|
);
|
|
2463
2463
|
return response2;
|
|
2464
2464
|
}
|
|
2465
|
+
let isDataRequest = isReactServerRequest(requestUrl);
|
|
2466
|
+
const url = new URL(request.url);
|
|
2467
|
+
let routerRequest = request;
|
|
2468
|
+
if (isDataRequest) {
|
|
2469
|
+
url.pathname = url.pathname.replace(/(_root)?\.rsc$/, "");
|
|
2470
|
+
routerRequest = new Request(url.toString(), {
|
|
2471
|
+
method: request.method,
|
|
2472
|
+
headers: request.headers,
|
|
2473
|
+
body: request.body,
|
|
2474
|
+
signal: request.signal,
|
|
2475
|
+
duplex: request.body ? "half" : void 0
|
|
2476
|
+
});
|
|
2477
|
+
}
|
|
2478
|
+
let matches = matchRoutes(routes, url.pathname);
|
|
2479
|
+
if (matches) {
|
|
2480
|
+
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2481
|
+
}
|
|
2482
|
+
const leafMatch = matches?.[matches.length - 1];
|
|
2483
|
+
if (!isDataRequest && leafMatch && !leafMatch.route.Component && !leafMatch.route.ErrorBoundary) {
|
|
2484
|
+
return generateResourceResponse(
|
|
2485
|
+
routerRequest,
|
|
2486
|
+
routes,
|
|
2487
|
+
leafMatch.route.id,
|
|
2488
|
+
onError
|
|
2489
|
+
);
|
|
2490
|
+
}
|
|
2465
2491
|
let response = await generateRenderResponse(
|
|
2466
|
-
|
|
2492
|
+
routerRequest,
|
|
2467
2493
|
routes,
|
|
2494
|
+
isDataRequest,
|
|
2468
2495
|
decodeCallServer,
|
|
2469
2496
|
decodeFormAction,
|
|
2470
2497
|
onError,
|
|
@@ -2513,6 +2540,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2513
2540
|
headers: request.headers,
|
|
2514
2541
|
signal: request.signal
|
|
2515
2542
|
});
|
|
2543
|
+
const isFormRequest = canDecodeWithFormData(
|
|
2544
|
+
request.headers.get("Content-Type")
|
|
2545
|
+
);
|
|
2516
2546
|
const actionId = request.headers.get("rsc-action-id");
|
|
2517
2547
|
if (actionId) {
|
|
2518
2548
|
if (!decodeCallServer) {
|
|
@@ -2520,7 +2550,7 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2520
2550
|
"Cannot handle enhanced server action without a decodeCallServer function"
|
|
2521
2551
|
);
|
|
2522
2552
|
}
|
|
2523
|
-
const reply =
|
|
2553
|
+
const reply = isFormRequest ? await request.formData() : await request.text();
|
|
2524
2554
|
const serverAction = await decodeCallServer(actionId, reply);
|
|
2525
2555
|
let actionResult = Promise.resolve(serverAction());
|
|
2526
2556
|
try {
|
|
@@ -2535,10 +2565,8 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2535
2565
|
actionResult,
|
|
2536
2566
|
revalidationRequest: getRevalidationRequest()
|
|
2537
2567
|
};
|
|
2538
|
-
}
|
|
2539
|
-
|
|
2540
|
-
const clone = request.clone();
|
|
2541
|
-
const formData = await request.formData();
|
|
2568
|
+
} else if (isFormRequest) {
|
|
2569
|
+
const formData = await request.clone().formData();
|
|
2542
2570
|
if (Array.from(formData.keys()).some((k) => k.startsWith("$ACTION_"))) {
|
|
2543
2571
|
if (!decodeFormAction) {
|
|
2544
2572
|
throw new Error(
|
|
@@ -2558,21 +2586,53 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2558
2586
|
revalidationRequest: getRevalidationRequest()
|
|
2559
2587
|
};
|
|
2560
2588
|
}
|
|
2561
|
-
return {
|
|
2562
|
-
revalidationRequest: clone
|
|
2563
|
-
};
|
|
2564
2589
|
}
|
|
2565
2590
|
}
|
|
2566
|
-
async function
|
|
2591
|
+
async function generateResourceResponse(request, routes, routeId, onError) {
|
|
2592
|
+
let result;
|
|
2593
|
+
try {
|
|
2594
|
+
const staticHandler = createStaticHandler(routes, {
|
|
2595
|
+
// TODO: Support basename
|
|
2596
|
+
// basename
|
|
2597
|
+
});
|
|
2598
|
+
let response = await staticHandler.queryRoute(request, {
|
|
2599
|
+
routeId,
|
|
2600
|
+
// TODO: Support loadContext
|
|
2601
|
+
// requestContext: loadContext,
|
|
2602
|
+
unstable_respond: (ctx) => ctx
|
|
2603
|
+
});
|
|
2604
|
+
if (isResponse(response)) {
|
|
2605
|
+
result = response;
|
|
2606
|
+
} else {
|
|
2607
|
+
if (typeof response === "string") {
|
|
2608
|
+
result = new Response(response);
|
|
2609
|
+
} else {
|
|
2610
|
+
result = Response.json(response);
|
|
2611
|
+
}
|
|
2612
|
+
}
|
|
2613
|
+
} catch (error) {
|
|
2614
|
+
if (isResponse(error)) {
|
|
2615
|
+
result = error;
|
|
2616
|
+
} else {
|
|
2617
|
+
onError?.(error);
|
|
2618
|
+
result = new Response("Internal Server Error", {
|
|
2619
|
+
status: 500
|
|
2620
|
+
});
|
|
2621
|
+
}
|
|
2622
|
+
}
|
|
2623
|
+
const headers = new Headers(result.headers);
|
|
2624
|
+
headers.set("React-Router-Resource", "true");
|
|
2625
|
+
return new Response(result.body, {
|
|
2626
|
+
status: result.status,
|
|
2627
|
+
statusText: result.statusText,
|
|
2628
|
+
headers
|
|
2629
|
+
});
|
|
2630
|
+
}
|
|
2631
|
+
async function generateRenderResponse(request, routes, isDataRequest, decodeCallServer, decodeFormAction, onError, generateResponse) {
|
|
2567
2632
|
let statusCode = 200;
|
|
2568
2633
|
let url = new URL(request.url);
|
|
2569
|
-
let isDataRequest = request.headers.has("X-React-Router-Data-Request");
|
|
2570
2634
|
let isSubmission = isMutationMethod(request.method);
|
|
2571
2635
|
let routeIdsToLoad = !isSubmission && url.searchParams.has("_routes") ? url.searchParams.get("_routes").split(",") : null;
|
|
2572
|
-
let matches = matchRoutes(routes, url.pathname);
|
|
2573
|
-
if (matches) {
|
|
2574
|
-
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2575
|
-
}
|
|
2576
2636
|
const handler = createStaticHandler(routes, {
|
|
2577
2637
|
mapRouteProperties: (r) => ({
|
|
2578
2638
|
hasErrorBoundary: r.ErrorBoundary != null
|
|
@@ -2881,6 +2941,9 @@ async function getAdditionalRoutePatches(pathnames, routes, matchedRouteIds) {
|
|
|
2881
2941
|
);
|
|
2882
2942
|
return patches;
|
|
2883
2943
|
}
|
|
2944
|
+
function isReactServerRequest(url) {
|
|
2945
|
+
return url.pathname.endsWith(".rsc");
|
|
2946
|
+
}
|
|
2884
2947
|
function isManifestRequest(url) {
|
|
2885
2948
|
return url.pathname.endsWith(".manifest");
|
|
2886
2949
|
}
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { splitCookiesString } from 'set-cookie-parser';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* react-router v0.0.0-experimental-
|
|
6
|
+
* react-router v0.0.0-experimental-bafa092e7
|
|
7
7
|
*
|
|
8
8
|
* Copyright (c) Remix Software Inc.
|
|
9
9
|
*
|
|
@@ -2431,8 +2431,8 @@ async function matchRSCServerRequest({
|
|
|
2431
2431
|
routes,
|
|
2432
2432
|
generateResponse
|
|
2433
2433
|
}) {
|
|
2434
|
-
|
|
2435
|
-
if (isManifestRequest(
|
|
2434
|
+
let requestUrl = new URL(request.url);
|
|
2435
|
+
if (isManifestRequest(requestUrl)) {
|
|
2436
2436
|
let response2 = await generateManifestResponse(
|
|
2437
2437
|
routes,
|
|
2438
2438
|
request,
|
|
@@ -2440,9 +2440,36 @@ async function matchRSCServerRequest({
|
|
|
2440
2440
|
);
|
|
2441
2441
|
return response2;
|
|
2442
2442
|
}
|
|
2443
|
+
let isDataRequest = isReactServerRequest(requestUrl);
|
|
2444
|
+
const url = new URL(request.url);
|
|
2445
|
+
let routerRequest = request;
|
|
2446
|
+
if (isDataRequest) {
|
|
2447
|
+
url.pathname = url.pathname.replace(/(_root)?\.rsc$/, "");
|
|
2448
|
+
routerRequest = new Request(url.toString(), {
|
|
2449
|
+
method: request.method,
|
|
2450
|
+
headers: request.headers,
|
|
2451
|
+
body: request.body,
|
|
2452
|
+
signal: request.signal,
|
|
2453
|
+
duplex: request.body ? "half" : void 0
|
|
2454
|
+
});
|
|
2455
|
+
}
|
|
2456
|
+
let matches = matchRoutes(routes, url.pathname);
|
|
2457
|
+
if (matches) {
|
|
2458
|
+
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2459
|
+
}
|
|
2460
|
+
const leafMatch = matches?.[matches.length - 1];
|
|
2461
|
+
if (!isDataRequest && leafMatch && !leafMatch.route.Component && !leafMatch.route.ErrorBoundary) {
|
|
2462
|
+
return generateResourceResponse(
|
|
2463
|
+
routerRequest,
|
|
2464
|
+
routes,
|
|
2465
|
+
leafMatch.route.id,
|
|
2466
|
+
onError
|
|
2467
|
+
);
|
|
2468
|
+
}
|
|
2443
2469
|
let response = await generateRenderResponse(
|
|
2444
|
-
|
|
2470
|
+
routerRequest,
|
|
2445
2471
|
routes,
|
|
2472
|
+
isDataRequest,
|
|
2446
2473
|
decodeCallServer,
|
|
2447
2474
|
decodeFormAction,
|
|
2448
2475
|
onError,
|
|
@@ -2491,6 +2518,9 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2491
2518
|
headers: request.headers,
|
|
2492
2519
|
signal: request.signal
|
|
2493
2520
|
});
|
|
2521
|
+
const isFormRequest = canDecodeWithFormData(
|
|
2522
|
+
request.headers.get("Content-Type")
|
|
2523
|
+
);
|
|
2494
2524
|
const actionId = request.headers.get("rsc-action-id");
|
|
2495
2525
|
if (actionId) {
|
|
2496
2526
|
if (!decodeCallServer) {
|
|
@@ -2498,7 +2528,7 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2498
2528
|
"Cannot handle enhanced server action without a decodeCallServer function"
|
|
2499
2529
|
);
|
|
2500
2530
|
}
|
|
2501
|
-
const reply =
|
|
2531
|
+
const reply = isFormRequest ? await request.formData() : await request.text();
|
|
2502
2532
|
const serverAction = await decodeCallServer(actionId, reply);
|
|
2503
2533
|
let actionResult = Promise.resolve(serverAction());
|
|
2504
2534
|
try {
|
|
@@ -2513,10 +2543,8 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2513
2543
|
actionResult,
|
|
2514
2544
|
revalidationRequest: getRevalidationRequest()
|
|
2515
2545
|
};
|
|
2516
|
-
}
|
|
2517
|
-
|
|
2518
|
-
const clone = request.clone();
|
|
2519
|
-
const formData = await request.formData();
|
|
2546
|
+
} else if (isFormRequest) {
|
|
2547
|
+
const formData = await request.clone().formData();
|
|
2520
2548
|
if (Array.from(formData.keys()).some((k) => k.startsWith("$ACTION_"))) {
|
|
2521
2549
|
if (!decodeFormAction) {
|
|
2522
2550
|
throw new Error(
|
|
@@ -2536,21 +2564,53 @@ async function processServerAction(request, decodeCallServer, decodeFormAction,
|
|
|
2536
2564
|
revalidationRequest: getRevalidationRequest()
|
|
2537
2565
|
};
|
|
2538
2566
|
}
|
|
2539
|
-
return {
|
|
2540
|
-
revalidationRequest: clone
|
|
2541
|
-
};
|
|
2542
2567
|
}
|
|
2543
2568
|
}
|
|
2544
|
-
async function
|
|
2569
|
+
async function generateResourceResponse(request, routes, routeId, onError) {
|
|
2570
|
+
let result;
|
|
2571
|
+
try {
|
|
2572
|
+
const staticHandler = createStaticHandler(routes, {
|
|
2573
|
+
// TODO: Support basename
|
|
2574
|
+
// basename
|
|
2575
|
+
});
|
|
2576
|
+
let response = await staticHandler.queryRoute(request, {
|
|
2577
|
+
routeId,
|
|
2578
|
+
// TODO: Support loadContext
|
|
2579
|
+
// requestContext: loadContext,
|
|
2580
|
+
unstable_respond: (ctx) => ctx
|
|
2581
|
+
});
|
|
2582
|
+
if (isResponse(response)) {
|
|
2583
|
+
result = response;
|
|
2584
|
+
} else {
|
|
2585
|
+
if (typeof response === "string") {
|
|
2586
|
+
result = new Response(response);
|
|
2587
|
+
} else {
|
|
2588
|
+
result = Response.json(response);
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
} catch (error) {
|
|
2592
|
+
if (isResponse(error)) {
|
|
2593
|
+
result = error;
|
|
2594
|
+
} else {
|
|
2595
|
+
onError?.(error);
|
|
2596
|
+
result = new Response("Internal Server Error", {
|
|
2597
|
+
status: 500
|
|
2598
|
+
});
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
const headers = new Headers(result.headers);
|
|
2602
|
+
headers.set("React-Router-Resource", "true");
|
|
2603
|
+
return new Response(result.body, {
|
|
2604
|
+
status: result.status,
|
|
2605
|
+
statusText: result.statusText,
|
|
2606
|
+
headers
|
|
2607
|
+
});
|
|
2608
|
+
}
|
|
2609
|
+
async function generateRenderResponse(request, routes, isDataRequest, decodeCallServer, decodeFormAction, onError, generateResponse) {
|
|
2545
2610
|
let statusCode = 200;
|
|
2546
2611
|
let url = new URL(request.url);
|
|
2547
|
-
let isDataRequest = request.headers.has("X-React-Router-Data-Request");
|
|
2548
2612
|
let isSubmission = isMutationMethod(request.method);
|
|
2549
2613
|
let routeIdsToLoad = !isSubmission && url.searchParams.has("_routes") ? url.searchParams.get("_routes").split(",") : null;
|
|
2550
|
-
let matches = matchRoutes(routes, url.pathname);
|
|
2551
|
-
if (matches) {
|
|
2552
|
-
await Promise.all(matches.map((m) => explodeLazyRoute(m.route)));
|
|
2553
|
-
}
|
|
2554
2614
|
const handler = createStaticHandler(routes, {
|
|
2555
2615
|
mapRouteProperties: (r) => ({
|
|
2556
2616
|
hasErrorBoundary: r.ErrorBoundary != null
|
|
@@ -2859,6 +2919,9 @@ async function getAdditionalRoutePatches(pathnames, routes, matchedRouteIds) {
|
|
|
2859
2919
|
);
|
|
2860
2920
|
return patches;
|
|
2861
2921
|
}
|
|
2922
|
+
function isReactServerRequest(url) {
|
|
2923
|
+
return url.pathname.endsWith(".rsc");
|
|
2924
|
+
}
|
|
2862
2925
|
function isManifestRequest(url) {
|
|
2863
2926
|
return url.pathname.endsWith(".manifest");
|
|
2864
2927
|
}
|