Skip to content

Commit 6ee39d0

Browse files
authored
Remove circular dependencies in react-router-dom (#11474)
1 parent b23e2b4 commit 6ee39d0

File tree

8 files changed

+2085
-2063
lines changed

8 files changed

+2085
-2063
lines changed

packages/react-router-dom-v5-compat/rollup.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module.exports = function rollup() {
3636
copy({
3737
targets: [
3838
{
39-
src: `${RR_DOM_DIR}/(index|dom|server).ts*`,
39+
src: `${RR_DOM_DIR}/(index|global|lib|dom|server).ts*`,
4040
dest: `${SOURCE_DIR}/react-router-dom`,
4141
},
4242
{

packages/react-router-dom/global.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import type { HydrationState, Router as RemixRouter } from "@remix-run/router";
2+
3+
import type { ViewTransition } from "./lib";
4+
import type {
5+
AssetsManifest,
6+
FutureConfig as RemixFutureConfig,
7+
} from "./ssr/entry";
8+
import type { RouteModules } from "./ssr/routeModules";
9+
10+
export type WindowRemixContext = {
11+
url: string;
12+
basename?: string;
13+
state: HydrationState;
14+
criticalCss?: string;
15+
future: RemixFutureConfig;
16+
isSpaMode: boolean;
17+
stream: ReadableStream<Uint8Array> | undefined;
18+
streamController: ReadableStreamDefaultController<Uint8Array>;
19+
// The number of active deferred keys rendered on the server
20+
a?: number;
21+
dev?: {
22+
port?: number;
23+
hmrRuntime?: string;
24+
};
25+
};
26+
27+
declare global {
28+
// TODO: v7 - Can this go away in favor of "just use remix"?
29+
var __staticRouterHydrationData: HydrationState | undefined;
30+
// v6 SPA info
31+
var __reactRouterVersion: string;
32+
interface Document {
33+
startViewTransition(cb: () => Promise<void> | void): ViewTransition;
34+
}
35+
// TODO: v7 - Once this is all working, rename these global variables to __reactRouter*
36+
var __remixContext: WindowRemixContext | undefined;
37+
var __remixManifest: AssetsManifest | undefined;
38+
var __remixRouteModules: RouteModules | undefined;
39+
var __remixRouter: RemixRouter | undefined;
40+
var __remixRevalidation: number | undefined;
41+
var __remixClearCriticalCss: (() => void) | undefined;
42+
var $RefreshRuntime$:
43+
| {
44+
performReactRefresh: () => void;
45+
}
46+
| undefined;
47+
}
48+
49+
// https://stackoverflow.com/a/59499895
50+
export {};

0 commit comments

Comments
 (0)