react-router 7.16.0 → 8.0.0-pre.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 +0 -1
- package/dist/development/dom-export.d.ts +6 -172
- package/dist/development/dom-export.js +12 -1007
- package/dist/development/index-react-server-client.d.ts +7 -4
- package/dist/development/index-react-server-client.js +8 -52
- package/dist/development/index-react-server.d.ts +1645 -1635
- package/dist/development/index-react-server.js +2880 -3642
- package/dist/development/index.d.ts +43 -1475
- package/dist/development/index.js +37 -2621
- package/dist/development/lib/actions.js +62 -0
- package/dist/development/lib/components.d.ts +1022 -0
- package/dist/development/lib/components.js +835 -0
- package/dist/development/lib/context.d.ts +83 -0
- package/dist/development/lib/context.js +41 -0
- package/dist/development/lib/dom/dom.d.ts +119 -0
- package/dist/development/lib/dom/dom.js +143 -0
- package/dist/development/lib/dom/lib.d.ts +2042 -0
- package/dist/development/lib/dom/lib.js +1259 -0
- package/dist/development/lib/dom/server.d.ts +138 -0
- package/dist/development/lib/dom/server.js +301 -0
- package/dist/development/lib/dom/ssr/components.d.ts +196 -0
- package/dist/development/lib/dom/ssr/components.js +579 -0
- package/dist/development/lib/dom/ssr/data.js +29 -0
- package/dist/development/lib/dom/ssr/entry.d.ts +59 -0
- package/dist/development/lib/dom/ssr/errorBoundaries.d.ts +27 -0
- package/dist/development/lib/dom/ssr/errorBoundaries.js +83 -0
- package/dist/development/lib/dom/ssr/errors.d.ts +7 -0
- package/dist/development/lib/dom/ssr/errors.js +36 -0
- package/dist/development/lib/dom/ssr/fallback.js +28 -0
- package/dist/development/lib/dom/ssr/fog-of-war.d.ts +12 -0
- package/dist/development/lib/dom/ssr/fog-of-war.js +170 -0
- package/dist/development/lib/dom/ssr/hydration.d.ts +32 -0
- package/dist/development/lib/dom/ssr/hydration.js +29 -0
- package/dist/development/lib/dom/ssr/invariant.js +16 -0
- package/dist/development/lib/dom/ssr/links.js +170 -0
- package/dist/development/lib/dom/ssr/markup.js +24 -0
- package/dist/development/lib/dom/ssr/routeModules.d.ts +206 -0
- package/dist/development/lib/dom/ssr/routeModules.js +31 -0
- package/dist/development/lib/dom/ssr/routes-test-stub.d.ts +62 -0
- package/dist/development/lib/dom/ssr/routes-test-stub.js +108 -0
- package/dist/development/lib/dom/ssr/routes.d.ts +33 -0
- package/dist/development/lib/dom/ssr/routes.js +303 -0
- package/dist/development/lib/dom/ssr/server.d.ts +45 -0
- package/dist/development/lib/dom/ssr/server.js +68 -0
- package/dist/development/lib/dom/ssr/single-fetch.d.ts +14 -0
- package/dist/development/lib/dom/ssr/single-fetch.js +346 -0
- package/dist/development/lib/dom-export/dom-router-provider.d.ts +9 -0
- package/dist/development/lib/dom-export/dom-router-provider.js +22 -0
- package/dist/development/lib/dom-export/hydrated-router.d.ts +125 -0
- package/dist/development/lib/dom-export/hydrated-router.js +153 -0
- package/dist/development/lib/errors.js +29 -0
- package/dist/development/lib/hooks.d.ts +947 -0
- package/dist/development/lib/hooks.js +1386 -0
- package/dist/development/lib/href.d.ts +20 -0
- package/dist/development/lib/href.js +50 -0
- package/dist/development/lib/router/history.d.ts +258 -0
- package/dist/development/lib/router/history.js +371 -0
- package/dist/development/lib/router/instrumentation.d.ts +86 -0
- package/dist/development/lib/router/instrumentation.js +213 -0
- package/dist/development/lib/router/links.d.ts +113 -0
- package/dist/development/lib/router/router.d.ts +663 -0
- package/dist/development/lib/router/router.js +2981 -0
- package/dist/development/lib/router/utils.d.ts +942 -0
- package/dist/development/lib/router/utils.js +791 -0
- package/dist/development/lib/rsc/browser.d.ts +137 -0
- package/dist/development/lib/rsc/browser.js +599 -0
- package/dist/development/lib/rsc/errorBoundaries.d.ts +11 -0
- package/dist/development/lib/rsc/errorBoundaries.js +90 -0
- package/dist/development/lib/rsc/html-stream/browser.d.ts +48 -0
- package/dist/development/lib/rsc/html-stream/browser.js +74 -0
- package/dist/development/lib/rsc/html-stream/server.js +78 -0
- package/dist/development/lib/rsc/route-modules.js +27 -0
- package/dist/development/lib/rsc/server.rsc.d.ts +219 -0
- package/dist/development/lib/rsc/server.ssr.d.ts +129 -0
- package/dist/development/lib/rsc/server.ssr.js +388 -0
- package/dist/development/lib/server-runtime/build.d.ts +66 -0
- package/dist/development/lib/server-runtime/cookies.d.ts +66 -0
- package/dist/development/lib/server-runtime/cookies.js +139 -0
- package/dist/development/lib/server-runtime/crypto.js +43 -0
- package/dist/development/lib/server-runtime/data.d.ts +13 -0
- package/dist/development/lib/server-runtime/data.js +25 -0
- package/dist/development/lib/server-runtime/dev.d.ts +9 -0
- package/dist/development/lib/server-runtime/dev.js +26 -0
- package/dist/development/lib/server-runtime/entry.js +20 -0
- package/dist/development/lib/server-runtime/errors.js +95 -0
- package/dist/development/lib/server-runtime/headers.js +73 -0
- package/dist/development/lib/server-runtime/invariant.js +19 -0
- package/dist/development/lib/server-runtime/mode.d.ts +12 -0
- package/dist/development/lib/server-runtime/mode.js +25 -0
- package/dist/development/lib/server-runtime/routeMatching.js +28 -0
- package/dist/development/lib/server-runtime/routes.d.ts +13 -0
- package/dist/development/lib/server-runtime/routes.js +74 -0
- package/dist/development/lib/server-runtime/server.d.ts +10 -0
- package/dist/development/lib/server-runtime/server.js +351 -0
- package/dist/development/lib/server-runtime/serverHandoff.js +17 -0
- package/dist/development/lib/server-runtime/sessions/cookieStorage.d.ts +25 -0
- package/dist/development/lib/server-runtime/sessions/cookieStorage.js +45 -0
- package/dist/development/lib/server-runtime/sessions/memoryStorage.d.ts +23 -0
- package/dist/development/lib/server-runtime/sessions/memoryStorage.js +52 -0
- package/dist/development/lib/server-runtime/sessions.d.ts +145 -0
- package/dist/development/lib/server-runtime/sessions.js +98 -0
- package/dist/development/lib/server-runtime/single-fetch.d.ts +7 -0
- package/dist/development/lib/server-runtime/single-fetch.js +215 -0
- package/dist/development/lib/server-runtime/urls.js +31 -0
- package/dist/development/lib/server-runtime/warnings.js +20 -0
- package/dist/development/lib/types/future.d.ts +9 -0
- package/dist/development/lib/types/internal.d.ts +26 -177
- package/dist/development/lib/types/internal.js +3 -2
- package/dist/{production/register-CNAx3TXj.d.ts → development/lib/types/register.d.ts} +9 -15
- package/dist/development/lib/types/route-data.d.ts +113 -0
- package/dist/development/lib/types/route-module-annotations.d.ts +149 -0
- package/dist/development/lib/types/route-module.d.ts +19 -0
- package/dist/development/lib/types/serializes-to.d.ts +13 -0
- package/dist/development/lib/types/utils.d.ts +11 -0
- package/dist/development/vendor/turbo-stream-v2/flatten.js +159 -0
- package/dist/development/vendor/turbo-stream-v2/turbo-stream.js +178 -0
- package/dist/development/vendor/turbo-stream-v2/unflatten.js +198 -0
- package/dist/development/vendor/turbo-stream-v2/utils.js +47 -0
- package/dist/production/dom-export.d.ts +6 -172
- package/dist/production/dom-export.js +12 -1007
- package/dist/production/index-react-server-client.d.ts +7 -4
- package/dist/production/index-react-server-client.js +8 -52
- package/dist/production/index-react-server.d.ts +1645 -1635
- package/dist/production/index-react-server.js +2871 -3642
- package/dist/production/index.d.ts +43 -1475
- package/dist/production/index.js +37 -2621
- package/dist/production/lib/actions.js +62 -0
- package/dist/production/lib/components.d.ts +1022 -0
- package/dist/production/lib/components.js +835 -0
- package/dist/production/lib/context.d.ts +83 -0
- package/dist/production/lib/context.js +41 -0
- package/dist/production/lib/dom/dom.d.ts +119 -0
- package/dist/production/lib/dom/dom.js +143 -0
- package/dist/production/lib/dom/lib.d.ts +2042 -0
- package/dist/production/lib/dom/lib.js +1259 -0
- package/dist/production/lib/dom/server.d.ts +138 -0
- package/dist/production/lib/dom/server.js +301 -0
- package/dist/production/lib/dom/ssr/components.d.ts +196 -0
- package/dist/production/lib/dom/ssr/components.js +579 -0
- package/dist/production/lib/dom/ssr/data.js +29 -0
- package/dist/production/lib/dom/ssr/entry.d.ts +59 -0
- package/dist/production/lib/dom/ssr/errorBoundaries.d.ts +27 -0
- package/dist/production/lib/dom/ssr/errorBoundaries.js +83 -0
- package/dist/production/lib/dom/ssr/errors.d.ts +7 -0
- package/dist/production/lib/dom/ssr/errors.js +36 -0
- package/dist/production/lib/dom/ssr/fallback.js +21 -0
- package/dist/production/lib/dom/ssr/fog-of-war.d.ts +12 -0
- package/dist/production/lib/dom/ssr/fog-of-war.js +170 -0
- package/dist/production/lib/dom/ssr/hydration.d.ts +32 -0
- package/dist/production/lib/dom/ssr/hydration.js +29 -0
- package/dist/production/lib/dom/ssr/invariant.js +16 -0
- package/dist/production/lib/dom/ssr/links.js +170 -0
- package/dist/production/lib/dom/ssr/markup.js +24 -0
- package/dist/production/lib/dom/ssr/routeModules.d.ts +206 -0
- package/dist/production/lib/dom/ssr/routeModules.js +31 -0
- package/dist/production/lib/dom/ssr/routes-test-stub.d.ts +62 -0
- package/dist/production/lib/dom/ssr/routes-test-stub.js +108 -0
- package/dist/production/lib/dom/ssr/routes.d.ts +33 -0
- package/dist/production/lib/dom/ssr/routes.js +303 -0
- package/dist/production/lib/dom/ssr/server.d.ts +45 -0
- package/dist/production/lib/dom/ssr/server.js +68 -0
- package/dist/production/lib/dom/ssr/single-fetch.d.ts +14 -0
- package/dist/production/lib/dom/ssr/single-fetch.js +346 -0
- package/dist/production/lib/dom-export/dom-router-provider.d.ts +9 -0
- package/dist/production/lib/dom-export/dom-router-provider.js +22 -0
- package/dist/production/lib/dom-export/hydrated-router.d.ts +125 -0
- package/dist/production/lib/dom-export/hydrated-router.js +153 -0
- package/dist/production/lib/errors.js +29 -0
- package/dist/production/lib/hooks.d.ts +947 -0
- package/dist/production/lib/hooks.js +1371 -0
- package/dist/production/lib/href.d.ts +20 -0
- package/dist/production/lib/href.js +50 -0
- package/dist/production/lib/router/history.d.ts +258 -0
- package/dist/production/lib/router/history.js +371 -0
- package/dist/production/lib/router/instrumentation.d.ts +86 -0
- package/dist/production/lib/router/instrumentation.js +213 -0
- package/dist/production/lib/router/links.d.ts +113 -0
- package/dist/production/lib/router/router.d.ts +663 -0
- package/dist/production/lib/router/router.js +2981 -0
- package/dist/production/lib/router/utils.d.ts +942 -0
- package/dist/production/lib/router/utils.js +782 -0
- package/dist/production/lib/rsc/browser.d.ts +137 -0
- package/dist/production/lib/rsc/browser.js +599 -0
- package/dist/production/lib/rsc/errorBoundaries.d.ts +11 -0
- package/dist/production/lib/rsc/errorBoundaries.js +90 -0
- package/dist/production/lib/rsc/html-stream/browser.d.ts +48 -0
- package/dist/production/lib/rsc/html-stream/browser.js +74 -0
- package/dist/production/lib/rsc/html-stream/server.js +78 -0
- package/dist/production/lib/rsc/route-modules.js +27 -0
- package/dist/production/lib/rsc/server.rsc.d.ts +219 -0
- package/dist/production/lib/rsc/server.ssr.d.ts +129 -0
- package/dist/production/lib/rsc/server.ssr.js +388 -0
- package/dist/production/lib/server-runtime/build.d.ts +66 -0
- package/dist/production/lib/server-runtime/cookies.d.ts +66 -0
- package/dist/production/lib/server-runtime/cookies.js +139 -0
- package/dist/production/lib/server-runtime/crypto.js +43 -0
- package/dist/production/lib/server-runtime/data.d.ts +13 -0
- package/dist/production/lib/server-runtime/data.js +25 -0
- package/dist/production/lib/server-runtime/dev.d.ts +9 -0
- package/dist/production/lib/server-runtime/dev.js +26 -0
- package/dist/production/lib/server-runtime/entry.js +20 -0
- package/dist/production/lib/server-runtime/errors.js +95 -0
- package/dist/production/lib/server-runtime/headers.js +73 -0
- package/dist/production/lib/server-runtime/invariant.js +19 -0
- package/dist/production/lib/server-runtime/mode.d.ts +12 -0
- package/dist/production/lib/server-runtime/mode.js +25 -0
- package/dist/production/lib/server-runtime/routeMatching.js +28 -0
- package/dist/production/lib/server-runtime/routes.d.ts +13 -0
- package/dist/production/lib/server-runtime/routes.js +74 -0
- package/dist/production/lib/server-runtime/server.d.ts +10 -0
- package/dist/production/lib/server-runtime/server.js +351 -0
- package/dist/production/lib/server-runtime/serverHandoff.js +17 -0
- package/dist/production/lib/server-runtime/sessions/cookieStorage.d.ts +25 -0
- package/dist/production/lib/server-runtime/sessions/cookieStorage.js +45 -0
- package/dist/production/lib/server-runtime/sessions/memoryStorage.d.ts +23 -0
- package/dist/production/lib/server-runtime/sessions/memoryStorage.js +52 -0
- package/dist/production/lib/server-runtime/sessions.d.ts +145 -0
- package/dist/production/lib/server-runtime/sessions.js +98 -0
- package/dist/production/lib/server-runtime/single-fetch.d.ts +7 -0
- package/dist/production/lib/server-runtime/single-fetch.js +215 -0
- package/dist/production/lib/server-runtime/urls.js +31 -0
- package/dist/production/lib/server-runtime/warnings.js +20 -0
- package/dist/production/lib/types/future.d.ts +9 -0
- package/dist/production/lib/types/internal.d.ts +26 -177
- package/dist/production/lib/types/internal.js +3 -2
- package/dist/{development/register-CNAx3TXj.d.ts → production/lib/types/register.d.ts} +9 -15
- package/dist/production/lib/types/route-data.d.ts +113 -0
- package/dist/production/lib/types/route-module-annotations.d.ts +149 -0
- package/dist/production/lib/types/route-module.d.ts +19 -0
- package/dist/production/lib/types/serializes-to.d.ts +13 -0
- package/dist/production/lib/types/utils.d.ts +11 -0
- package/dist/production/vendor/turbo-stream-v2/flatten.js +159 -0
- package/dist/production/vendor/turbo-stream-v2/turbo-stream.js +178 -0
- package/dist/production/vendor/turbo-stream-v2/unflatten.js +198 -0
- package/dist/production/vendor/turbo-stream-v2/utils.js +47 -0
- package/docs/explanation/backend-for-frontend.md +50 -0
- package/docs/explanation/code-splitting.md +77 -0
- package/docs/explanation/concurrency.md +135 -0
- package/docs/explanation/form-vs-fetcher.md +292 -0
- package/docs/explanation/hot-module-replacement.md +137 -0
- package/docs/explanation/hydration.md +14 -0
- package/docs/explanation/index-query-param.md +86 -0
- package/docs/explanation/index.md +4 -0
- package/docs/explanation/lazy-route-discovery.md +78 -0
- package/docs/explanation/location.md +6 -0
- package/docs/explanation/progressive-enhancement.md +150 -0
- package/docs/explanation/race-conditions.md +88 -0
- package/docs/explanation/react-transitions.md +160 -0
- package/docs/explanation/route-matching.md +7 -0
- package/docs/explanation/server-client-execution.md +4 -0
- package/docs/explanation/sessions-and-cookies.md +465 -0
- package/docs/explanation/special-files.md +16 -0
- package/docs/explanation/state-management.md +524 -0
- package/docs/explanation/styling.md +87 -0
- package/docs/explanation/type-safety.md +82 -0
- package/docs/how-to/accessibility.md +44 -0
- package/docs/how-to/client-data.md +199 -0
- package/docs/how-to/data-strategy.md +317 -0
- package/docs/how-to/error-boundary.md +231 -0
- package/docs/how-to/error-reporting.md +134 -0
- package/docs/how-to/fetchers.md +307 -0
- package/docs/how-to/file-route-conventions.md +410 -0
- package/docs/how-to/file-uploads.md +217 -0
- package/docs/how-to/form-validation.md +120 -0
- package/docs/how-to/headers.md +164 -0
- package/docs/how-to/index.md +4 -0
- package/docs/how-to/instrumentation.md +556 -0
- package/docs/how-to/meta.md +40 -0
- package/docs/how-to/middleware.md +728 -0
- package/docs/how-to/navigation-blocking.md +233 -0
- package/docs/how-to/optimize-revalidation.md +12 -0
- package/docs/how-to/pre-rendering.md +225 -0
- package/docs/how-to/presets.md +103 -0
- package/docs/how-to/react-server-components.md +899 -0
- package/docs/how-to/resource-routes.md +126 -0
- package/docs/how-to/route-module-type-safety.md +100 -0
- package/docs/how-to/search-params.md +4 -0
- package/docs/how-to/security.md +30 -0
- package/docs/how-to/server-bundles.md +66 -0
- package/docs/how-to/spa.md +120 -0
- package/docs/how-to/status.md +63 -0
- package/docs/how-to/suspense.md +132 -0
- package/docs/how-to/using-handle.md +117 -0
- package/docs/how-to/view-transitions.md +237 -0
- package/docs/how-to/webhook.md +50 -0
- package/docs/index.md +39 -0
- package/docs/start/data/actions.md +138 -0
- package/docs/start/data/custom.md +198 -0
- package/docs/start/data/data-loading.md +44 -0
- package/docs/start/data/index.md +4 -0
- package/docs/start/data/installation.md +52 -0
- package/docs/start/data/navigating.md +12 -0
- package/docs/start/data/pending-ui.md +12 -0
- package/docs/start/data/route-object.md +248 -0
- package/docs/start/data/routing.md +281 -0
- package/docs/start/data/testing.md +8 -0
- package/docs/start/declarative/index.md +4 -0
- package/docs/start/declarative/installation.md +43 -0
- package/docs/start/declarative/navigating.md +133 -0
- package/docs/start/declarative/routing.md +237 -0
- package/docs/start/declarative/url-values.md +65 -0
- package/docs/start/framework/actions.md +175 -0
- package/docs/start/framework/data-loading.md +201 -0
- package/docs/start/framework/deploying.md +96 -0
- package/docs/start/framework/index.md +4 -0
- package/docs/start/framework/installation.md +42 -0
- package/docs/start/framework/navigating.md +182 -0
- package/docs/start/framework/pending-ui.md +142 -0
- package/docs/start/framework/rendering.md +59 -0
- package/docs/start/framework/route-module.md +527 -0
- package/docs/start/framework/routing.md +362 -0
- package/docs/start/framework/testing.md +133 -0
- package/docs/start/index.md +4 -0
- package/docs/start/modes.md +201 -0
- package/docs/upgrading/component-routes.md +363 -0
- package/docs/upgrading/future.md +31 -0
- package/docs/upgrading/index.md +4 -0
- package/docs/upgrading/remix.md +403 -0
- package/docs/upgrading/router-provider.md +442 -0
- package/docs/upgrading/v6.md +379 -0
- package/package.json +44 -87
- package/dist/development/browser-D3uq9sI1.d.ts +0 -318
- package/dist/development/browser-nIQ4Nsyi.d.mts +0 -318
- package/dist/development/chunk-IBI7OMNB.js +0 -1363
- package/dist/development/chunk-QUQL4437.mjs +0 -11529
- package/dist/development/chunk-S54KXAEJ.mjs +0 -2585
- package/dist/development/chunk-SRID2YZ2.js +0 -10229
- package/dist/development/chunk-XEJDWL2B.js +0 -188
- package/dist/development/context-m8rizgnE.d.mts +0 -1771
- package/dist/development/data-D4xhSy90.d.ts +0 -1732
- package/dist/development/data-U8FS-wNn.d.mts +0 -1732
- package/dist/development/dom-export.d.mts +0 -172
- package/dist/development/dom-export.mjs +0 -1008
- package/dist/development/index-react-server-client-BLiUx67a.d.ts +0 -3655
- package/dist/development/index-react-server-client-CdKROblb.d.mts +0 -2600
- package/dist/development/index-react-server-client.d.mts +0 -4
- package/dist/development/index-react-server-client.mjs +0 -59
- package/dist/development/index-react-server.d.mts +0 -2703
- package/dist/development/index-react-server.mjs +0 -3780
- package/dist/development/index.d.mts +0 -1478
- package/dist/development/index.mjs +0 -277
- package/dist/development/instrumentation-1q4YhLGP.d.ts +0 -715
- package/dist/development/lib/types/internal.d.mts +0 -184
- package/dist/development/lib/types/internal.mjs +0 -10
- package/dist/development/register-CqK96Zfk.d.mts +0 -30
- package/dist/production/browser-D3uq9sI1.d.ts +0 -318
- package/dist/production/browser-nIQ4Nsyi.d.mts +0 -318
- package/dist/production/chunk-EAQNHM3N.js +0 -188
- package/dist/production/chunk-NALGHHKE.mjs +0 -2585
- package/dist/production/chunk-Q65P7S7Y.mjs +0 -11529
- package/dist/production/chunk-SKEDDLRM.js +0 -1363
- package/dist/production/chunk-Y7DNFQZP.js +0 -10229
- package/dist/production/context-m8rizgnE.d.mts +0 -1771
- package/dist/production/data-D4xhSy90.d.ts +0 -1732
- package/dist/production/data-U8FS-wNn.d.mts +0 -1732
- package/dist/production/dom-export.d.mts +0 -172
- package/dist/production/dom-export.mjs +0 -1008
- package/dist/production/index-react-server-client-BLiUx67a.d.ts +0 -3655
- package/dist/production/index-react-server-client-CdKROblb.d.mts +0 -2600
- package/dist/production/index-react-server-client.d.mts +0 -4
- package/dist/production/index-react-server-client.mjs +0 -59
- package/dist/production/index-react-server.d.mts +0 -2703
- package/dist/production/index-react-server.mjs +0 -3780
- package/dist/production/index.d.mts +0 -1478
- package/dist/production/index.mjs +0 -277
- package/dist/production/instrumentation-1q4YhLGP.d.ts +0 -715
- package/dist/production/lib/types/internal.d.mts +0 -184
- package/dist/production/lib/types/internal.mjs +0 -10
- package/dist/production/register-CqK96Zfk.d.mts +0 -30
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* react-router v8.0.0-pre.0
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
import { ErrorResponseImpl, compilePath } from "../../router/utils.js";
|
|
12
|
+
import { useRouteError } from "../../hooks.js";
|
|
13
|
+
import invariant from "./invariant.js";
|
|
14
|
+
import { loadRouteModule } from "./routeModules.js";
|
|
15
|
+
import { prefetchRouteCss, prefetchStyleLinks } from "./links.js";
|
|
16
|
+
import { RemixRootDefaultErrorBoundary } from "./errorBoundaries.js";
|
|
17
|
+
import { RemixRootDefaultHydrateFallback } from "./fallback.js";
|
|
18
|
+
import * as React$1 from "react";
|
|
19
|
+
//#region lib/dom/ssr/routes.tsx
|
|
20
|
+
function groupRoutesByParentId(manifest) {
|
|
21
|
+
let routes = {};
|
|
22
|
+
Object.values(manifest).forEach((route) => {
|
|
23
|
+
if (route) {
|
|
24
|
+
let parentId = route.parentId || "";
|
|
25
|
+
if (!routes[parentId]) routes[parentId] = [];
|
|
26
|
+
routes[parentId].push(route);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
return routes;
|
|
30
|
+
}
|
|
31
|
+
function getRouteComponents(route, routeModule, isSpaMode) {
|
|
32
|
+
let Component = getRouteModuleComponent(routeModule);
|
|
33
|
+
let HydrateFallback = routeModule.HydrateFallback && (!isSpaMode || route.id === "root") ? routeModule.HydrateFallback : route.id === "root" ? RemixRootDefaultHydrateFallback : void 0;
|
|
34
|
+
let ErrorBoundary = routeModule.ErrorBoundary ? routeModule.ErrorBoundary : route.id === "root" ? () => /* @__PURE__ */ React$1.createElement(RemixRootDefaultErrorBoundary, { error: useRouteError() }) : void 0;
|
|
35
|
+
if (route.id === "root" && routeModule.Layout) return {
|
|
36
|
+
...Component ? { element: /* @__PURE__ */ React$1.createElement(routeModule.Layout, null, /* @__PURE__ */ React$1.createElement(Component, null)) } : { Component },
|
|
37
|
+
...ErrorBoundary ? { errorElement: /* @__PURE__ */ React$1.createElement(routeModule.Layout, null, /* @__PURE__ */ React$1.createElement(ErrorBoundary, null)) } : { ErrorBoundary },
|
|
38
|
+
...HydrateFallback ? { hydrateFallbackElement: /* @__PURE__ */ React$1.createElement(routeModule.Layout, null, /* @__PURE__ */ React$1.createElement(HydrateFallback, null)) } : { HydrateFallback }
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
Component,
|
|
42
|
+
ErrorBoundary,
|
|
43
|
+
HydrateFallback
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function createServerRoutes(manifest, routeModules, future, isSpaMode, parentId = "", routesByParentId = groupRoutesByParentId(manifest), spaModeLazyPromise = Promise.resolve({ Component: () => null })) {
|
|
47
|
+
return (routesByParentId[parentId] || []).map((route) => {
|
|
48
|
+
let routeModule = routeModules[route.id];
|
|
49
|
+
invariant(routeModule, "No `routeModule` available to create server routes");
|
|
50
|
+
let dataRoute = {
|
|
51
|
+
...getRouteComponents(route, routeModule, isSpaMode),
|
|
52
|
+
caseSensitive: route.caseSensitive,
|
|
53
|
+
id: route.id,
|
|
54
|
+
index: route.index,
|
|
55
|
+
path: route.path,
|
|
56
|
+
handle: routeModule.handle,
|
|
57
|
+
lazy: isSpaMode ? () => spaModeLazyPromise : void 0,
|
|
58
|
+
loader: route.hasLoader || route.hasClientLoader ? () => null : void 0
|
|
59
|
+
};
|
|
60
|
+
let children = createServerRoutes(manifest, routeModules, future, isSpaMode, route.id, routesByParentId, spaModeLazyPromise);
|
|
61
|
+
if (children.length > 0) dataRoute.children = children;
|
|
62
|
+
return dataRoute;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest, routeModulesCache, initialState, ssr, isSpaMode) {
|
|
66
|
+
return createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSpaMode, "", groupRoutesByParentId(manifest), needsRevalidation);
|
|
67
|
+
}
|
|
68
|
+
function preventInvalidServerHandlerCall(type, route) {
|
|
69
|
+
if (type === "loader" && !route.hasLoader || type === "action" && !route.hasAction) {
|
|
70
|
+
let msg = `You are trying to call ${type === "action" ? "serverAction()" : "serverLoader()"} on a route that does not have a server ${type} (routeId: "${route.id}")`;
|
|
71
|
+
console.error(msg);
|
|
72
|
+
throw new ErrorResponseImpl(400, "Bad Request", new Error(msg), true);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function noActionDefinedError(type, routeId) {
|
|
76
|
+
let article = type === "clientAction" ? "a" : "an";
|
|
77
|
+
let msg = `Route "${routeId}" does not have ${article} ${type}, but you are trying to submit to it. To fix this, please add ${article} \`${type}\` function to the route`;
|
|
78
|
+
console.error(msg);
|
|
79
|
+
throw new ErrorResponseImpl(405, "Method Not Allowed", new Error(msg), true);
|
|
80
|
+
}
|
|
81
|
+
function createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSpaMode, parentId = "", routesByParentId = groupRoutesByParentId(manifest), needsRevalidation) {
|
|
82
|
+
return (routesByParentId[parentId] || []).map((route) => {
|
|
83
|
+
let routeModule = routeModulesCache[route.id];
|
|
84
|
+
function fetchServerHandler(singleFetch) {
|
|
85
|
+
invariant(typeof singleFetch === "function", "No single fetch function available for route handler");
|
|
86
|
+
return singleFetch();
|
|
87
|
+
}
|
|
88
|
+
function fetchServerLoader(singleFetch) {
|
|
89
|
+
if (!route.hasLoader) return Promise.resolve(null);
|
|
90
|
+
return fetchServerHandler(singleFetch);
|
|
91
|
+
}
|
|
92
|
+
function fetchServerAction(singleFetch) {
|
|
93
|
+
if (!route.hasAction) throw noActionDefinedError("action", route.id);
|
|
94
|
+
return fetchServerHandler(singleFetch);
|
|
95
|
+
}
|
|
96
|
+
function prefetchModule(modulePath) {
|
|
97
|
+
import(
|
|
98
|
+
/* @vite-ignore */
|
|
99
|
+
/* webpackIgnore: true */
|
|
100
|
+
modulePath
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
function prefetchRouteModuleChunks(route) {
|
|
104
|
+
if (route.clientActionModule) prefetchModule(route.clientActionModule);
|
|
105
|
+
if (route.clientLoaderModule) prefetchModule(route.clientLoaderModule);
|
|
106
|
+
}
|
|
107
|
+
async function prefetchStylesAndCallHandler(handler) {
|
|
108
|
+
let cachedModule = routeModulesCache[route.id];
|
|
109
|
+
let linkPrefetchPromise = cachedModule ? prefetchStyleLinks(route, cachedModule) : Promise.resolve();
|
|
110
|
+
try {
|
|
111
|
+
return handler();
|
|
112
|
+
} finally {
|
|
113
|
+
await linkPrefetchPromise;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
let dataRoute = {
|
|
117
|
+
id: route.id,
|
|
118
|
+
index: route.index,
|
|
119
|
+
path: route.path
|
|
120
|
+
};
|
|
121
|
+
if (routeModule) {
|
|
122
|
+
Object.assign(dataRoute, {
|
|
123
|
+
...dataRoute,
|
|
124
|
+
...getRouteComponents(route, routeModule, isSpaMode),
|
|
125
|
+
middleware: routeModule.clientMiddleware,
|
|
126
|
+
handle: routeModule.handle,
|
|
127
|
+
shouldRevalidate: getShouldRevalidateFunction(dataRoute.path, routeModule, route, ssr, needsRevalidation)
|
|
128
|
+
});
|
|
129
|
+
let hasInitialData = initialState && initialState.loaderData && route.id in initialState.loaderData;
|
|
130
|
+
let initialData = hasInitialData ? initialState?.loaderData?.[route.id] : void 0;
|
|
131
|
+
let hasInitialError = initialState && initialState.errors && route.id in initialState.errors;
|
|
132
|
+
let initialError = hasInitialError ? initialState?.errors?.[route.id] : void 0;
|
|
133
|
+
let isHydrationRequest = needsRevalidation == null && (routeModule.clientLoader?.hydrate === true || !route.hasLoader);
|
|
134
|
+
dataRoute.loader = async ({ request, params, context, pattern, url }, singleFetch) => {
|
|
135
|
+
let _isHydrationRequest = isHydrationRequest;
|
|
136
|
+
isHydrationRequest = false;
|
|
137
|
+
return await prefetchStylesAndCallHandler(async () => {
|
|
138
|
+
invariant(routeModule, "No `routeModule` available for critical-route loader");
|
|
139
|
+
if (!routeModule.clientLoader) return fetchServerLoader(singleFetch);
|
|
140
|
+
return routeModule.clientLoader({
|
|
141
|
+
request,
|
|
142
|
+
params,
|
|
143
|
+
context,
|
|
144
|
+
pattern,
|
|
145
|
+
url,
|
|
146
|
+
async serverLoader() {
|
|
147
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
148
|
+
if (_isHydrationRequest) {
|
|
149
|
+
if (hasInitialData) return initialData;
|
|
150
|
+
if (hasInitialError) throw initialError;
|
|
151
|
+
}
|
|
152
|
+
return fetchServerLoader(singleFetch);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
};
|
|
157
|
+
dataRoute.loader.hydrate = shouldHydrateRouteLoader(route.id, routeModule.clientLoader, route.hasLoader, isSpaMode);
|
|
158
|
+
dataRoute.action = ({ request, params, context, pattern, url }, singleFetch) => {
|
|
159
|
+
return prefetchStylesAndCallHandler(async () => {
|
|
160
|
+
invariant(routeModule, "No `routeModule` available for critical-route action");
|
|
161
|
+
if (!routeModule.clientAction) {
|
|
162
|
+
if (isSpaMode) throw noActionDefinedError("clientAction", route.id);
|
|
163
|
+
return fetchServerAction(singleFetch);
|
|
164
|
+
}
|
|
165
|
+
return routeModule.clientAction({
|
|
166
|
+
request,
|
|
167
|
+
params,
|
|
168
|
+
context,
|
|
169
|
+
pattern,
|
|
170
|
+
url,
|
|
171
|
+
async serverAction() {
|
|
172
|
+
preventInvalidServerHandlerCall("action", route);
|
|
173
|
+
return fetchServerAction(singleFetch);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
} else {
|
|
179
|
+
if (!route.hasClientLoader) dataRoute.loader = (_, singleFetch) => prefetchStylesAndCallHandler(() => {
|
|
180
|
+
return fetchServerLoader(singleFetch);
|
|
181
|
+
});
|
|
182
|
+
if (!route.hasClientAction) dataRoute.action = (_, singleFetch) => prefetchStylesAndCallHandler(() => {
|
|
183
|
+
if (isSpaMode) throw noActionDefinedError("clientAction", route.id);
|
|
184
|
+
return fetchServerAction(singleFetch);
|
|
185
|
+
});
|
|
186
|
+
let lazyRoutePromise;
|
|
187
|
+
async function getLazyRoute() {
|
|
188
|
+
if (lazyRoutePromise) return await lazyRoutePromise;
|
|
189
|
+
lazyRoutePromise = (async () => {
|
|
190
|
+
if (route.clientLoaderModule || route.clientActionModule) await new Promise((resolve) => setTimeout(resolve, 0));
|
|
191
|
+
let routeModulePromise = loadRouteModuleWithBlockingLinks(route, routeModulesCache);
|
|
192
|
+
prefetchRouteModuleChunks(route);
|
|
193
|
+
return await routeModulePromise;
|
|
194
|
+
})();
|
|
195
|
+
return await lazyRoutePromise;
|
|
196
|
+
}
|
|
197
|
+
dataRoute.lazy = {
|
|
198
|
+
loader: route.hasClientLoader ? async () => {
|
|
199
|
+
let { clientLoader } = route.clientLoaderModule ? await import(
|
|
200
|
+
/* @vite-ignore */
|
|
201
|
+
/* webpackIgnore: true */
|
|
202
|
+
route.clientLoaderModule
|
|
203
|
+
) : await getLazyRoute();
|
|
204
|
+
invariant(clientLoader, "No `clientLoader` export found");
|
|
205
|
+
return (args, singleFetch) => clientLoader({
|
|
206
|
+
...args,
|
|
207
|
+
async serverLoader() {
|
|
208
|
+
preventInvalidServerHandlerCall("loader", route);
|
|
209
|
+
return fetchServerLoader(singleFetch);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
} : void 0,
|
|
213
|
+
action: route.hasClientAction ? async () => {
|
|
214
|
+
let clientActionPromise = route.clientActionModule ? import(
|
|
215
|
+
/* @vite-ignore */
|
|
216
|
+
/* webpackIgnore: true */
|
|
217
|
+
route.clientActionModule
|
|
218
|
+
) : getLazyRoute();
|
|
219
|
+
prefetchRouteModuleChunks(route);
|
|
220
|
+
let { clientAction } = await clientActionPromise;
|
|
221
|
+
invariant(clientAction, "No `clientAction` export found");
|
|
222
|
+
return (args, singleFetch) => clientAction({
|
|
223
|
+
...args,
|
|
224
|
+
async serverAction() {
|
|
225
|
+
preventInvalidServerHandlerCall("action", route);
|
|
226
|
+
return fetchServerAction(singleFetch);
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
} : void 0,
|
|
230
|
+
middleware: route.hasClientMiddleware ? async () => {
|
|
231
|
+
let { clientMiddleware } = route.clientMiddlewareModule ? await import(
|
|
232
|
+
/* @vite-ignore */
|
|
233
|
+
/* webpackIgnore: true */
|
|
234
|
+
route.clientMiddlewareModule
|
|
235
|
+
) : await getLazyRoute();
|
|
236
|
+
invariant(clientMiddleware, "No `clientMiddleware` export found");
|
|
237
|
+
return clientMiddleware;
|
|
238
|
+
} : void 0,
|
|
239
|
+
shouldRevalidate: async () => {
|
|
240
|
+
let lazyRoute = await getLazyRoute();
|
|
241
|
+
return getShouldRevalidateFunction(dataRoute.path, lazyRoute, route, ssr, needsRevalidation);
|
|
242
|
+
},
|
|
243
|
+
handle: async () => (await getLazyRoute()).handle,
|
|
244
|
+
Component: async () => (await getLazyRoute()).Component,
|
|
245
|
+
ErrorBoundary: route.hasErrorBoundary ? async () => (await getLazyRoute()).ErrorBoundary : void 0
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
let children = createClientRoutes(manifest, routeModulesCache, initialState, ssr, isSpaMode, route.id, routesByParentId, needsRevalidation);
|
|
249
|
+
if (children.length > 0) dataRoute.children = children;
|
|
250
|
+
return dataRoute;
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
function getShouldRevalidateFunction(path, route, manifestRoute, ssr, needsRevalidation) {
|
|
254
|
+
if (needsRevalidation) return wrapShouldRevalidateForHdr(manifestRoute.id, route.shouldRevalidate, needsRevalidation);
|
|
255
|
+
if (!ssr && manifestRoute.hasLoader && !manifestRoute.hasClientLoader) {
|
|
256
|
+
let myParams = path ? compilePath(path)[1].map((p) => p.paramName) : [];
|
|
257
|
+
const didParamsChange = (opts) => myParams.some((p) => opts.currentParams[p] !== opts.nextParams[p]);
|
|
258
|
+
if (route.shouldRevalidate) {
|
|
259
|
+
let fn = route.shouldRevalidate;
|
|
260
|
+
return (opts) => fn({
|
|
261
|
+
...opts,
|
|
262
|
+
defaultShouldRevalidate: didParamsChange(opts)
|
|
263
|
+
});
|
|
264
|
+
} else return (opts) => didParamsChange(opts);
|
|
265
|
+
}
|
|
266
|
+
return route.shouldRevalidate;
|
|
267
|
+
}
|
|
268
|
+
function wrapShouldRevalidateForHdr(routeId, routeShouldRevalidate, needsRevalidation) {
|
|
269
|
+
let handledRevalidation = false;
|
|
270
|
+
return (arg) => {
|
|
271
|
+
if (!handledRevalidation) {
|
|
272
|
+
handledRevalidation = true;
|
|
273
|
+
return needsRevalidation.has(routeId);
|
|
274
|
+
}
|
|
275
|
+
return routeShouldRevalidate ? routeShouldRevalidate(arg) : arg.defaultShouldRevalidate;
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
async function loadRouteModuleWithBlockingLinks(route, routeModules) {
|
|
279
|
+
let routeModulePromise = loadRouteModule(route, routeModules);
|
|
280
|
+
let prefetchRouteCssPromise = prefetchRouteCss(route);
|
|
281
|
+
let routeModule = await routeModulePromise;
|
|
282
|
+
await Promise.all([prefetchRouteCssPromise, prefetchStyleLinks(route, routeModule)]);
|
|
283
|
+
return {
|
|
284
|
+
Component: getRouteModuleComponent(routeModule),
|
|
285
|
+
ErrorBoundary: routeModule.ErrorBoundary,
|
|
286
|
+
clientMiddleware: routeModule.clientMiddleware,
|
|
287
|
+
clientAction: routeModule.clientAction,
|
|
288
|
+
clientLoader: routeModule.clientLoader,
|
|
289
|
+
handle: routeModule.handle,
|
|
290
|
+
links: routeModule.links,
|
|
291
|
+
meta: routeModule.meta,
|
|
292
|
+
shouldRevalidate: routeModule.shouldRevalidate
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
function getRouteModuleComponent(routeModule) {
|
|
296
|
+
if (routeModule.default == null) return void 0;
|
|
297
|
+
if (!(typeof routeModule.default === "object" && Object.keys(routeModule.default).length === 0)) return routeModule.default;
|
|
298
|
+
}
|
|
299
|
+
function shouldHydrateRouteLoader(routeId, clientLoader, hasLoader, isSpaMode) {
|
|
300
|
+
return isSpaMode && routeId !== "root" || clientLoader != null && (clientLoader.hydrate === true || hasLoader !== true);
|
|
301
|
+
}
|
|
302
|
+
//#endregion
|
|
303
|
+
export { createClientRoutes, createClientRoutesWithHMRRevalidationOptOut, createServerRoutes, noActionDefinedError, shouldHydrateRouteLoader };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
|
|
2
|
+
import { EntryContext } from "./entry.js";
|
|
3
|
+
import { ReactElement } from "react";
|
|
4
|
+
|
|
5
|
+
//#region lib/dom/ssr/server.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* @category Types
|
|
8
|
+
*/
|
|
9
|
+
interface ServerRouterProps {
|
|
10
|
+
/**
|
|
11
|
+
* The entry context containing the manifest, route modules, and other data
|
|
12
|
+
* needed for rendering.
|
|
13
|
+
*/
|
|
14
|
+
context: EntryContext;
|
|
15
|
+
/**
|
|
16
|
+
* The URL of the request being handled.
|
|
17
|
+
*/
|
|
18
|
+
url: string | URL;
|
|
19
|
+
/**
|
|
20
|
+
* An optional `nonce` for [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP)
|
|
21
|
+
* compliance, used to allow inline scripts to run safely.
|
|
22
|
+
*/
|
|
23
|
+
nonce?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The server entry point for a React Router app in Framework Mode. This
|
|
27
|
+
* component is used to generate the HTML in the response from the server. See
|
|
28
|
+
* [`entry.server.tsx`](../framework-conventions/entry.server.tsx).
|
|
29
|
+
*
|
|
30
|
+
* @public
|
|
31
|
+
* @category Framework Routers
|
|
32
|
+
* @mode framework
|
|
33
|
+
* @param props Props
|
|
34
|
+
* @param {ServerRouterProps.context} props.context n/a
|
|
35
|
+
* @param {ServerRouterProps.nonce} props.nonce n/a
|
|
36
|
+
* @param {ServerRouterProps.url} props.url n/a
|
|
37
|
+
* @returns A React element that represents the server-rendered application.
|
|
38
|
+
*/
|
|
39
|
+
declare function ServerRouter({
|
|
40
|
+
context,
|
|
41
|
+
url,
|
|
42
|
+
nonce
|
|
43
|
+
}: ServerRouterProps): ReactElement;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { ServerRouter, ServerRouterProps };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* react-router v8.0.0-pre.0
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Remix Software Inc.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
import { StreamTransfer } from "./single-fetch.js";
|
|
12
|
+
import { RemixErrorBoundary } from "./errorBoundaries.js";
|
|
13
|
+
import { createServerRoutes, shouldHydrateRouteLoader } from "./routes.js";
|
|
14
|
+
import { FrameworkContext } from "./components.js";
|
|
15
|
+
import { StaticRouterProvider, createStaticRouter } from "../server.js";
|
|
16
|
+
import * as React$1 from "react";
|
|
17
|
+
//#region lib/dom/ssr/server.tsx
|
|
18
|
+
/**
|
|
19
|
+
* The server entry point for a React Router app in Framework Mode. This
|
|
20
|
+
* component is used to generate the HTML in the response from the server. See
|
|
21
|
+
* [`entry.server.tsx`](../framework-conventions/entry.server.tsx).
|
|
22
|
+
*
|
|
23
|
+
* @public
|
|
24
|
+
* @category Framework Routers
|
|
25
|
+
* @mode framework
|
|
26
|
+
* @param props Props
|
|
27
|
+
* @param {ServerRouterProps.context} props.context n/a
|
|
28
|
+
* @param {ServerRouterProps.nonce} props.nonce n/a
|
|
29
|
+
* @param {ServerRouterProps.url} props.url n/a
|
|
30
|
+
* @returns A React element that represents the server-rendered application.
|
|
31
|
+
*/
|
|
32
|
+
function ServerRouter({ context, url, nonce }) {
|
|
33
|
+
if (typeof url === "string") url = new URL(url);
|
|
34
|
+
let { manifest, routeModules, criticalCss, serverHandoffString } = context;
|
|
35
|
+
let routes = createServerRoutes(manifest.routes, routeModules, context.future, context.isSpaMode);
|
|
36
|
+
context.staticHandlerContext.loaderData = { ...context.staticHandlerContext.loaderData };
|
|
37
|
+
for (let match of context.staticHandlerContext.matches) {
|
|
38
|
+
let routeId = match.route.id;
|
|
39
|
+
let route = routeModules[routeId];
|
|
40
|
+
let manifestRoute = context.manifest.routes[routeId];
|
|
41
|
+
if (route && manifestRoute && shouldHydrateRouteLoader(routeId, route.clientLoader, manifestRoute.hasLoader, context.isSpaMode) && (route.HydrateFallback || !manifestRoute.hasLoader)) delete context.staticHandlerContext.loaderData[routeId];
|
|
42
|
+
}
|
|
43
|
+
let router = createStaticRouter(routes, context.staticHandlerContext, { branches: context.branches });
|
|
44
|
+
return /* @__PURE__ */ React$1.createElement(React$1.Fragment, null, /* @__PURE__ */ React$1.createElement(FrameworkContext.Provider, { value: {
|
|
45
|
+
manifest,
|
|
46
|
+
routeModules,
|
|
47
|
+
criticalCss,
|
|
48
|
+
serverHandoffString,
|
|
49
|
+
future: context.future,
|
|
50
|
+
ssr: context.ssr,
|
|
51
|
+
isSpaMode: context.isSpaMode,
|
|
52
|
+
routeDiscovery: context.routeDiscovery,
|
|
53
|
+
serializeError: context.serializeError,
|
|
54
|
+
renderMeta: context.renderMeta
|
|
55
|
+
} }, /* @__PURE__ */ React$1.createElement(RemixErrorBoundary, { location: router.state.location }, /* @__PURE__ */ React$1.createElement(StaticRouterProvider, {
|
|
56
|
+
router,
|
|
57
|
+
context: context.staticHandlerContext,
|
|
58
|
+
hydrate: false
|
|
59
|
+
}))), context.serverHandoffStream ? /* @__PURE__ */ React$1.createElement(React$1.Suspense, null, /* @__PURE__ */ React$1.createElement(StreamTransfer, {
|
|
60
|
+
context,
|
|
61
|
+
identifier: 0,
|
|
62
|
+
reader: context.serverHandoffStream.getReader(),
|
|
63
|
+
textDecoder: new TextDecoder(),
|
|
64
|
+
nonce
|
|
65
|
+
})) : null);
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { ServerRouter };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
import { DataStrategyFunction } from "../../router/utils.js";
|
|
3
|
+
import { Router } from "../../router/router.js";
|
|
4
|
+
import { RouteModules } from "./routeModules.js";
|
|
5
|
+
import { AssetsManifest } from "./entry.js";
|
|
6
|
+
//#region lib/dom/ssr/single-fetch.d.ts
|
|
7
|
+
declare const SingleFetchRedirectSymbol: unique symbol;
|
|
8
|
+
declare function getTurboStreamSingleFetchDataStrategy(getRouter: () => Router, manifest: AssetsManifest, routeModules: RouteModules, ssr: boolean): DataStrategyFunction;
|
|
9
|
+
declare function decodeViaTurboStream(body: ReadableStream<Uint8Array>, global: Window | typeof globalThis): Promise<{
|
|
10
|
+
done: Promise<void>;
|
|
11
|
+
value: unknown;
|
|
12
|
+
}>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { SingleFetchRedirectSymbol, decodeViaTurboStream, getTurboStreamSingleFetchDataStrategy };
|