rsbuild-plugin-react-router 0.4.1 → 0.6.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/README.md +72 -240
- package/dist/{451.js → 511.js} +461 -331
- package/dist/build-output-transforms.d.ts +32 -7
- package/dist/classic-mode.d.ts +56 -0
- package/dist/config-imports.d.ts +8 -2
- package/dist/constants.d.ts +3 -0
- package/dist/dev-background-resources.d.ts +3 -3
- package/dist/dev-generation.d.ts +2 -3
- package/dist/dev-hmr.d.ts +8 -2
- package/dist/dev-runtime-controller.d.ts +6 -1
- package/dist/dev-source-maps.d.ts +4 -0
- package/dist/effect-runtime.d.ts +17 -5
- package/dist/entry-paths.d.ts +16 -0
- package/dist/environment-output.d.ts +6 -0
- package/dist/export-utils.d.ts +2 -1
- package/dist/federation.d.ts +2 -0
- package/dist/index.cjs +3675 -2107
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3614 -2214
- package/dist/lazy-compilation-prewarm.d.ts +8 -5
- package/dist/manifest.d.ts +16 -4
- package/dist/mode-plan.d.ts +82 -0
- package/dist/modify-browser-manifest.d.ts +8 -4
- package/dist/performance.d.ts +4 -1
- package/dist/plugin-utils.d.ts +27 -1
- package/dist/prerender-build.d.ts +5 -5
- package/dist/prerender.d.ts +1 -5
- package/dist/react-router-config.d.ts +11 -3
- package/dist/route-artifacts.d.ts +4 -2
- package/dist/route-chunks.d.ts +2 -1
- package/dist/route-component-transform.d.ts +0 -2
- package/dist/route-export-pruning.d.ts +4 -1
- package/dist/route-imports.d.ts +18 -0
- package/dist/route-module-transform-loader.d.ts +14 -0
- package/dist/route-module-transform-loader.js +44 -0
- package/dist/route-module-transform-rules.d.ts +14 -0
- package/dist/route-transform-tasks.d.ts +6 -0
- package/dist/route-watch.d.ts +11 -6
- package/dist/rsc-dev-server.d.ts +26 -0
- package/dist/rsc-prerender.d.ts +54 -0
- package/dist/rsc-route-config.d.ts +6 -0
- package/dist/rsc-route-exports.d.ts +15 -0
- package/dist/rsc-route-transform-loader.cjs +43 -0
- package/dist/rsc-route-transform-loader.d.ts +30 -0
- package/dist/rsc-route-transform-loader.js +16 -0
- package/dist/rsc-route-transform-registration.d.ts +12 -0
- package/dist/rsc-route-transforms.d.ts +21 -0
- package/dist/rsc-support.d.ts +23 -0
- package/dist/rsc-virtual-modules.d.ts +19 -0
- package/dist/server-build-plan.d.ts +2 -1
- package/dist/server-build-resolution.d.ts +1 -2
- package/dist/server-utils.d.ts +4 -5
- package/dist/ssr-asset-relocation.d.ts +98 -0
- package/dist/templates/entry.rsc.client.d.ts +1 -0
- package/dist/templates/entry.rsc.client.js +61 -0
- package/dist/templates/entry.rsc.d.ts +9 -0
- package/dist/templates/entry.rsc.js +38 -0
- package/dist/templates/entry.rsc.ssr.d.ts +4 -0
- package/dist/templates/entry.rsc.ssr.js +24 -0
- package/dist/typegen.d.ts +4 -2
- package/dist/types.d.ts +34 -6
- package/package.json +76 -22
- package/src/build-output-transforms.ts +181 -43
- package/src/classic-mode.ts +253 -0
- package/src/config-imports.ts +153 -6
- package/src/constants.ts +6 -2
- package/src/dev-background-resources.ts +46 -100
- package/src/dev-generation.ts +52 -33
- package/src/dev-hmr.ts +112 -80
- package/src/dev-runtime-artifacts.ts +11 -12
- package/src/dev-runtime-controller.ts +75 -85
- package/src/dev-runtime-session.ts +14 -18
- package/src/dev-server.ts +2 -0
- package/src/dev-source-maps.ts +257 -0
- package/src/effect-runtime.ts +105 -57
- package/src/entry-paths.ts +80 -0
- package/src/environment-output.ts +55 -0
- package/src/export-utils.ts +15 -11
- package/src/federation.ts +38 -0
- package/src/index.ts +666 -519
- package/src/lazy-compilation-prewarm.ts +20 -4
- package/src/manifest.ts +157 -82
- package/src/mode-plan.ts +367 -0
- package/src/modify-browser-manifest.ts +130 -124
- package/src/performance.ts +11 -2
- package/src/plugin-utils.ts +103 -39
- package/src/prerender-build.ts +82 -104
- package/src/prerender.ts +23 -24
- package/src/react-router-config.ts +72 -26
- package/src/route-artifacts.ts +96 -66
- package/src/route-chunks.ts +167 -51
- package/src/route-component-transform.ts +14 -21
- package/src/route-export-pruning.ts +4 -3
- package/src/route-imports.ts +100 -0
- package/src/route-module-transform-loader.ts +149 -0
- package/src/route-module-transform-rules.ts +115 -0
- package/src/route-transform-tasks.ts +44 -29
- package/src/route-watch.ts +166 -188
- package/src/rsc-dev-server.ts +112 -0
- package/src/rsc-prerender.ts +362 -0
- package/src/rsc-route-config.ts +175 -0
- package/src/rsc-route-exports.ts +67 -0
- package/src/rsc-route-transform-loader.ts +65 -0
- package/src/rsc-route-transform-registration.ts +145 -0
- package/src/rsc-route-transforms.ts +995 -0
- package/src/rsc-runtime.d.ts +143 -0
- package/src/rsc-support.ts +116 -0
- package/src/rsc-virtual-modules.ts +113 -0
- package/src/server-build-plan.ts +14 -3
- package/src/server-build-resolution.ts +37 -47
- package/src/server-utils.ts +21 -35
- package/src/ssr-asset-relocation.ts +183 -0
- package/src/ssr-externals.ts +8 -26
- package/src/templates/entry.rsc.client.tsx +168 -0
- package/src/templates/entry.rsc.ssr.tsx +45 -0
- package/src/templates/entry.rsc.tsx +80 -0
- package/src/typegen.ts +40 -23
- package/src/types.ts +43 -6
- package/src/warnings/warn-on-client-source-maps.ts +6 -10
- package/dist/parallel-route-transform-protocol.d.ts +0 -25
- package/dist/parallel-route-transform-worker.d.ts +0 -1
- package/dist/parallel-route-transform-worker.js +0 -38
- package/dist/parallel-route-transforms.d.ts +0 -29
- package/src/parallel-route-transform-protocol.ts +0 -35
- package/src/parallel-route-transform-worker.ts +0 -82
- package/src/parallel-route-transforms.ts +0 -458
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import type { RsbuildPluginAPI } from '@rsbuild/core';
|
|
2
|
-
import {
|
|
3
|
-
import type { RouteTransformExecutor } from './parallel-route-transforms.js';
|
|
2
|
+
import { type ReactRouterManifestForDev as ReactRouterManifest, type RouteChunkManifestOptions, type RouteModuleAnalysisProvider, type ReactRouterManifestStats } from './manifest.js';
|
|
4
3
|
import type { ReactRouterPerformanceProfiler } from './performance.js';
|
|
5
|
-
import type
|
|
4
|
+
import { type RouteTransformRunner } from './route-transform-tasks.js';
|
|
5
|
+
import { type RouteChunkConfig } from './route-chunks.js';
|
|
6
6
|
import type { PluginOptions, Route } from './types.js';
|
|
7
|
-
type
|
|
7
|
+
import { type RouteModuleAnalysis } from './export-utils.js';
|
|
8
|
+
/**
|
|
9
|
+
* Register the node-compilation hook that relocates server-only static assets
|
|
10
|
+
* (`?url` imports, `.css?url` files, and other `asset/resource` outputs
|
|
11
|
+
* referenced only by loaders or `.server` modules) into the client build. The
|
|
12
|
+
* loader/`links()` export returns the asset URL to the client, which fetches it
|
|
13
|
+
* from `build/client` at runtime, so the file must exist there even though only
|
|
14
|
+
* the node compilation referenced it. The assets are also stripped from the
|
|
15
|
+
* server build to avoid shipping duplicate static files, mirroring upstream
|
|
16
|
+
* React Router's Vite plugin. This runs for every node compilation, so it also
|
|
17
|
+
* covers `serverBundles` (multiple node outputs) and dev mode (where
|
|
18
|
+
* `writeToDisk` is enabled).
|
|
19
|
+
*
|
|
20
|
+
* Registered by both the classic build-output transforms and the RSC branch so
|
|
21
|
+
* `.css?url`/`?url` assets referenced from `links()` resolve in RSC framework
|
|
22
|
+
* mode too.
|
|
23
|
+
*/
|
|
24
|
+
export declare const registerSsrAssetRelocation: ({ api, outputClientPath, performanceProfiler, }: {
|
|
25
|
+
api: RsbuildPluginAPI;
|
|
26
|
+
outputClientPath: string;
|
|
27
|
+
performanceProfiler: ReactRouterPerformanceProfiler;
|
|
28
|
+
}) => void;
|
|
8
29
|
type RegisterBuildOutputTransformsOptions = {
|
|
9
30
|
api: RsbuildPluginAPI;
|
|
10
31
|
resolvedServerOutput: 'module' | 'commonjs';
|
|
@@ -16,16 +37,20 @@ type RegisterBuildOutputTransformsOptions = {
|
|
|
16
37
|
getClientStats: () => ReactRouterManifestStats | undefined;
|
|
17
38
|
appDirectory: string;
|
|
18
39
|
getAssetPrefix: () => string;
|
|
19
|
-
routeChunkOptions:
|
|
20
|
-
|
|
40
|
+
routeChunkOptions: RouteChunkManifestOptions | undefined;
|
|
41
|
+
routeModuleAnalysis?: RouteModuleAnalysisProvider;
|
|
42
|
+
routeTransformRunner: RouteTransformRunner;
|
|
21
43
|
routeByFilePath: Map<string, Route>;
|
|
22
44
|
routeChunkConfig: RouteChunkConfig;
|
|
23
45
|
isBuild: boolean;
|
|
24
46
|
splitRouteModules: boolean;
|
|
47
|
+
useRouteModuleTransformApi: boolean;
|
|
25
48
|
ssr: boolean;
|
|
26
49
|
isSpaMode: boolean;
|
|
27
50
|
rootRoutePath: string;
|
|
51
|
+
outputClientPath: string;
|
|
28
52
|
isDevHmrEnabled?: () => boolean;
|
|
53
|
+
onRouteModuleAnalysis?: (resourcePath: string, analysis: RouteModuleAnalysis) => void;
|
|
29
54
|
};
|
|
30
|
-
export declare const registerBuildOutputTransforms: ({ api, resolvedServerOutput, performanceProfiler, getLatestServerManifest, getLatestServerManifestByBundleId, routes, pluginOptions, getClientStats, appDirectory, getAssetPrefix, routeChunkOptions,
|
|
55
|
+
export declare const registerBuildOutputTransforms: ({ api, resolvedServerOutput, performanceProfiler, getLatestServerManifest, getLatestServerManifestByBundleId, routes, pluginOptions, getClientStats, appDirectory, getAssetPrefix, routeChunkOptions, routeModuleAnalysis, routeTransformRunner, routeByFilePath, routeChunkConfig, isBuild, splitRouteModules, useRouteModuleTransformApi, ssr, isSpaMode, rootRoutePath, outputClientPath, isDevHmrEnabled, onRouteModuleAnalysis, }: RegisterBuildOutputTransformsOptions) => void;
|
|
31
56
|
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { RsbuildEntryDescription, RsbuildPluginAPI } from '@rsbuild/core';
|
|
2
|
+
import type { RouteConfigEntry } from '@react-router/dev/routes';
|
|
3
|
+
import { getBuildManifest } from './build-manifest.js';
|
|
4
|
+
import { type DevHmrPlanOptions } from './dev-hmr.js';
|
|
5
|
+
import { type ReactRouterDevRuntimeController } from './dev-runtime-controller.js';
|
|
6
|
+
import { type ReactRouterServerBundleEntry } from './server-build-plan.js';
|
|
7
|
+
import type { Config } from './react-router-config.js';
|
|
8
|
+
import type { Route } from './types.js';
|
|
9
|
+
type CreateClassicWebRouteEntriesOptions = {
|
|
10
|
+
appDirectory: string;
|
|
11
|
+
isBuild: boolean;
|
|
12
|
+
routes: Record<string, Route>;
|
|
13
|
+
splitRouteModules: boolean;
|
|
14
|
+
};
|
|
15
|
+
type CreateClassicVirtualModulesOptions = {
|
|
16
|
+
allowedActionOrigins: string[] | undefined;
|
|
17
|
+
appDirectory: string;
|
|
18
|
+
assetsBuildDirectory: string;
|
|
19
|
+
basename: string;
|
|
20
|
+
devHmrRuntimeModule?: string;
|
|
21
|
+
entryServerPath: string;
|
|
22
|
+
future: Config['future'];
|
|
23
|
+
isSpaMode: boolean;
|
|
24
|
+
prerenderPaths: string[];
|
|
25
|
+
publicPath: string;
|
|
26
|
+
routeDiscovery: Config['routeDiscovery'];
|
|
27
|
+
routes: Record<string, Route>;
|
|
28
|
+
routesByServerBundleId: Record<string, Record<string, Route>>;
|
|
29
|
+
ssr: boolean;
|
|
30
|
+
};
|
|
31
|
+
type CreateClassicBuildArtifactsOptions = {
|
|
32
|
+
api: RsbuildPluginAPI;
|
|
33
|
+
defaultEntryName: string;
|
|
34
|
+
isBuild: boolean;
|
|
35
|
+
prerenderConfig: Config['prerender'];
|
|
36
|
+
reactRouterConfig: Required<Pick<Config, 'appDirectory' | 'buildDirectory' | 'serverBuildFile' | 'future'>> & Pick<Config, 'serverBundles'>;
|
|
37
|
+
routeConfig: RouteConfigEntry[];
|
|
38
|
+
routes: Record<string, Route>;
|
|
39
|
+
rootDirectory: string;
|
|
40
|
+
ssr: boolean;
|
|
41
|
+
devHmr?: DevHmrPlanOptions;
|
|
42
|
+
};
|
|
43
|
+
export type ClassicBuildArtifacts = {
|
|
44
|
+
buildManifest: Awaited<ReturnType<typeof getBuildManifest>>;
|
|
45
|
+
devRuntime: ReactRouterDevRuntimeController;
|
|
46
|
+
prerenderPaths: string[];
|
|
47
|
+
routesByServerBundleId: Record<string, Record<string, Route>>;
|
|
48
|
+
serverBundleEntries: ReactRouterServerBundleEntry[];
|
|
49
|
+
};
|
|
50
|
+
export declare const createClassicBuildArtifacts: ({ api, defaultEntryName, isBuild, prerenderConfig, reactRouterConfig, routeConfig, routes, rootDirectory, ssr, devHmr, }: CreateClassicBuildArtifactsOptions) => Promise<ClassicBuildArtifacts>;
|
|
51
|
+
export declare const createClassicWebRouteEntries: ({ appDirectory, isBuild, routes, splitRouteModules, }: CreateClassicWebRouteEntriesOptions) => {
|
|
52
|
+
manifestChunkNames: Set<string>;
|
|
53
|
+
webRouteEntries: Record<string, RsbuildEntryDescription>;
|
|
54
|
+
};
|
|
55
|
+
export declare const createClassicVirtualModules: ({ allowedActionOrigins, appDirectory, assetsBuildDirectory, basename, devHmrRuntimeModule, entryServerPath, future, isSpaMode, prerenderPaths, publicPath, routeDiscovery, routes, routesByServerBundleId, ssr, }: CreateClassicVirtualModulesOptions) => Record<string, string>;
|
|
56
|
+
export {};
|
package/dist/config-imports.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { ModuleCache } from 'jiti';
|
|
2
2
|
import { createJiti } from 'jiti';
|
|
3
|
-
type ConfigImporter = Pick<ReturnType<typeof createJiti>, 'import'>;
|
|
3
|
+
export type ConfigImporter = Pick<ReturnType<typeof createJiti>, 'import'>;
|
|
4
|
+
type ConfigImportOptions = {
|
|
5
|
+
define?: Record<string, unknown>;
|
|
6
|
+
moduleCache?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const applyConfigDefines: (source: string, define: Record<string, unknown> | undefined) => string;
|
|
9
|
+
export declare const createConfigImporter: ({ define, moduleCache, }?: ConfigImportOptions) => ReturnType<typeof createJiti>;
|
|
4
10
|
export declare const collectConfigImportWatchPaths: (configPath: string, moduleCache: ModuleCache, previousCacheKeys: ReadonlySet<string>) => string[];
|
|
5
11
|
export declare const clearConfigImportCache: (moduleCache: ModuleCache, filePaths: readonly string[]) => void;
|
|
6
|
-
export declare const importConfigWithWatchPaths: <T>(configPath: string, load?: (importer: ConfigImporter) => PromiseLike<T> | T) => Promise<{
|
|
12
|
+
export declare const importConfigWithWatchPaths: <T>(configPath: string, load?: (importer: ConfigImporter) => PromiseLike<T> | T, options?: ConfigImportOptions) => Promise<{
|
|
7
13
|
value: Awaited<T>;
|
|
8
14
|
watchPaths: string | string[];
|
|
9
15
|
}>;
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare const PLUGIN_NAME = "rsbuild:react-router";
|
|
2
|
+
/** Default web `output.distPath.js` segment when the user has not customized it. */
|
|
3
|
+
export declare const DEFAULT_JS_DIST_PATH = "static/js";
|
|
2
4
|
export declare const JS_EXTENSIONS: readonly [".tsx", ".ts", ".jsx", ".js", ".mjs", ".mts"];
|
|
3
5
|
export declare const JS_LOADERS: {
|
|
4
6
|
readonly '.ts': "ts";
|
|
@@ -36,3 +38,4 @@ export declare const CLIENT_EXPORTS: {
|
|
|
36
38
|
readonly meta: "meta";
|
|
37
39
|
readonly shouldRevalidate: "shouldRevalidate";
|
|
38
40
|
};
|
|
41
|
+
export declare const SPA_FALLBACK_HTML_FILE = "__spa-fallback.html";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { RsbuildPluginAPI } from '@rsbuild/core';
|
|
2
2
|
import type { RouteConfigEntry } from '@react-router/dev/routes';
|
|
3
|
+
import { type PluginEffectRuntime } from './effect-runtime.js';
|
|
3
4
|
import { type ReactRouterManifestForDev } from './manifest.js';
|
|
4
|
-
import type { RouteTransformExecutor } from './parallel-route-transforms.js';
|
|
5
5
|
import { type WatchFileConfig } from './route-watch.js';
|
|
6
6
|
import type { PluginOptions } from './types.js';
|
|
7
7
|
type RegisterReactRouterDevBackgroundResourcesOptions = {
|
|
8
8
|
api: RsbuildPluginAPI;
|
|
9
|
+
runtime: PluginEffectRuntime;
|
|
9
10
|
isBuild: boolean;
|
|
10
11
|
lazyCompilationPrewarm: PluginOptions['unstableLazyCompilationPrewarm'];
|
|
11
|
-
routeTransformExecutor: RouteTransformExecutor;
|
|
12
12
|
routeRestartMarkerPath: string;
|
|
13
13
|
watchDirectory: string;
|
|
14
14
|
getRouteTopology: () => Promise<Set<string>>;
|
|
@@ -34,5 +34,5 @@ export declare const createReactRouterRouteWatchFiles: ({ configWatchPaths, rout
|
|
|
34
34
|
routeRestartMarkerPath: string;
|
|
35
35
|
onRouteTopologyChange: PluginOptions["onRouteTopologyChange"];
|
|
36
36
|
}) => WatchFileConfig[];
|
|
37
|
-
export declare const registerReactRouterDevBackgroundResources: ({ api, isBuild, lazyCompilationPrewarm,
|
|
37
|
+
export declare const registerReactRouterDevBackgroundResources: ({ api, runtime, isBuild, lazyCompilationPrewarm, routeRestartMarkerPath, watchDirectory, getRouteTopology, initialRouteTopology, onRouteTopologyChange, }: RegisterReactRouterDevBackgroundResourcesOptions) => Promise<ReactRouterDevBackgroundResources>;
|
|
38
38
|
export {};
|
package/dist/dev-generation.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { RsbuildDevServer, Rspack } from '@rsbuild/core';
|
|
2
2
|
import type { ServerBuild } from 'react-router';
|
|
3
3
|
import { type DevGraphChanges, type DevGraphIdentity, type DevRuntimeStats, type ReactRouterDevBuildPlan, type ReactRouterDevManifestSet } from './dev-runtime-artifacts.js';
|
|
4
|
-
export {
|
|
5
|
-
export type { DevChangedFiles, DevGraphChanges, DevGraphIdentity, ReactRouterDevBuildPlan, ReactRouterDevManifest, ReactRouterDevManifestSet, } from './dev-runtime-artifacts.js';
|
|
4
|
+
export type { DevGraphChanges, DevGraphIdentity, ReactRouterDevManifest, } from './dev-runtime-artifacts.js';
|
|
6
5
|
export type ReactRouterDevRuntime = {
|
|
7
6
|
beginAttempt: () => void;
|
|
8
7
|
captureWeb: (compilation: Rspack.Compilation, manifestsByEntryName: ReactRouterDevManifestSet) => void;
|
|
@@ -16,7 +15,7 @@ type CreateReactRouterDevRuntimeOptions = {
|
|
|
16
15
|
buildPlan: ReactRouterDevBuildPlan;
|
|
17
16
|
onEvaluationError: (error: Error) => void;
|
|
18
17
|
onCssAssetOwnershipChanged?: (change: 'removed' | 'restored') => void;
|
|
19
|
-
onRouteManifestChanged?: () => void;
|
|
18
|
+
onRouteManifestChanged?: (manifest: ReactRouterDevManifestSet[string]) => void;
|
|
20
19
|
onWarning?: (message: string) => void;
|
|
21
20
|
};
|
|
22
21
|
export declare const createReactRouterDevRuntime: ({ server, buildPlan, onEvaluationError, onCssAssetOwnershipChanged, onRouteManifestChanged, onWarning, }: CreateReactRouterDevRuntimeOptions) => ReactRouterDevRuntime;
|
package/dist/dev-hmr.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { Rspack } from '@rsbuild/core';
|
|
2
2
|
export declare const DEV_HMR_RUNTIME_MODULE_ID = "virtual/react-router/hmr-runtime";
|
|
3
|
+
export declare const DEV_MANIFEST_UPDATE_EVENT = "react-router:manifest-update";
|
|
4
|
+
export type DevHmrPlanOptions = {
|
|
5
|
+
isEnabled: () => boolean;
|
|
6
|
+
runtimeModule: string;
|
|
7
|
+
onNodeRebuildCommitted: () => void;
|
|
8
|
+
};
|
|
3
9
|
export declare const isRspackSwcReactRefreshEnabled: (rspackConfig: Rspack.Configuration) => boolean;
|
|
4
10
|
/**
|
|
5
11
|
* Resolves the `react-refresh/runtime` module that
|
|
@@ -17,9 +23,9 @@ export declare const resolveReactRefreshRuntimePath: (rootPath: string) => strin
|
|
|
17
23
|
* whenever server code changes, which the client answers by revalidating
|
|
18
24
|
* React Router loader data.
|
|
19
25
|
*/
|
|
20
|
-
export declare const DEV_HDR_REVISION_RELATIVE_PATH = ".react-router/hdr-revision.mjs";
|
|
21
26
|
export declare const getDevHdrRevisionFilePath: (rootPath: string) => string;
|
|
22
27
|
export type DevHdrRevisionSignal = {
|
|
28
|
+
filePath: string;
|
|
23
29
|
/** Writes the initial revision module so the first compile can resolve it. */
|
|
24
30
|
ensure: () => void;
|
|
25
31
|
/** Increments the revision, signaling hot data revalidation to the client. */
|
|
@@ -32,7 +38,7 @@ export declare const createDevHdrRevisionSignal: ({ filePath, onError, }: {
|
|
|
32
38
|
/**
|
|
33
39
|
* Browser-side HMR runtime shared by all route client entries in development.
|
|
34
40
|
*
|
|
35
|
-
* This mirrors React Router
|
|
41
|
+
* This mirrors React Router framework HMR contract (see `refresh-utils.mjs` in
|
|
36
42
|
* `@react-router/dev`): route module updates are applied by patching
|
|
37
43
|
* `window.__reactRouterRouteModules` while preserving the previous component
|
|
38
44
|
* identities (React Fast Refresh swaps their implementations in place),
|
|
@@ -9,11 +9,16 @@ type CreateControllerOptions = {
|
|
|
9
9
|
api: RsbuildPluginAPI;
|
|
10
10
|
isBuild: boolean;
|
|
11
11
|
buildPlan: ReactRouterDevBuildPlan;
|
|
12
|
+
/**
|
|
13
|
+
* The browser HMR runtime patches route manifest metadata (loader/action
|
|
14
|
+
* flags) in place, so metadata-only changes no longer need a full reload.
|
|
15
|
+
*/
|
|
16
|
+
clientPatchesRouteMetadata?: boolean | (() => boolean);
|
|
12
17
|
/**
|
|
13
18
|
* Invoked after a development attempt commits a re-evaluated node build for
|
|
14
19
|
* changed server files. Used to signal hot data revalidation to the client.
|
|
15
20
|
*/
|
|
16
21
|
onNodeRebuildCommitted?: () => void;
|
|
17
22
|
};
|
|
18
|
-
export declare const createReactRouterDevRuntimeController: ({ api, isBuild, buildPlan, onNodeRebuildCommitted, }: CreateControllerOptions) => ReactRouterDevRuntimeController;
|
|
23
|
+
export declare const createReactRouterDevRuntimeController: ({ api, isBuild, buildPlan, clientPatchesRouteMetadata, onNodeRebuildCommitted, }: CreateControllerOptions) => ReactRouterDevRuntimeController;
|
|
19
24
|
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Rspack } from '@rsbuild/core';
|
|
2
|
+
export declare const registerDevServerSourceMaps: (compilation: Pick<Rspack.Compilation, "getAssets" | "outputOptions">) => void;
|
|
3
|
+
export declare const remapDevServerStack: (stack: string) => string;
|
|
4
|
+
export declare const installDevServerSourceMapSupport: () => void;
|
package/dist/effect-runtime.d.ts
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
|
+
import * as Context from 'effect/Context';
|
|
1
2
|
import * as Effect from 'effect/Effect';
|
|
3
|
+
import * as FiberSet from 'effect/FiberSet';
|
|
4
|
+
import * as ManagedRuntime from 'effect/ManagedRuntime';
|
|
5
|
+
import * as Scope from 'effect/Scope';
|
|
6
|
+
type PluginResources = {
|
|
7
|
+
readonly scope: Scope.CloseableScope;
|
|
8
|
+
};
|
|
9
|
+
declare const PluginResources: Context.Tag<PluginResources, PluginResources>;
|
|
10
|
+
type PluginRuntimeContext = Scope.Scope | FiberSet.FiberSet | PluginResources;
|
|
11
|
+
export type PluginEffectRuntime = Pick<ManagedRuntime.ManagedRuntime<PluginRuntimeContext, never>, 'runFork' | 'runPromise'> & {
|
|
12
|
+
readonly dispose: () => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export declare const createPluginEffectRuntime: () => PluginEffectRuntime;
|
|
2
15
|
export declare const DEV_BACKGROUND_STARTUP_DELAY_MS = 3000;
|
|
3
16
|
export declare const normalizeEffectError: (cause: unknown) => Error;
|
|
4
17
|
export declare const runPluginEffect: <A, E>(effect: Effect.Effect<A, E, never>) => Promise<A>;
|
|
5
|
-
export declare const tryPluginSync: <A>(evaluate: () => A) => Effect.Effect<A, Error, never>;
|
|
6
18
|
export declare const tryPluginPromise: <A>(evaluate: () => PromiseLike<A> | A) => Effect.Effect<A, Error, never>;
|
|
7
19
|
type DelayedPluginTask = {
|
|
8
20
|
schedule(): void;
|
|
9
21
|
reschedule(): void;
|
|
10
|
-
cancelEffect(): Effect.Effect<void
|
|
11
|
-
cancel(): Promise<void>;
|
|
22
|
+
cancelEffect(): Effect.Effect<void>;
|
|
12
23
|
};
|
|
13
|
-
export declare const createDelayedPluginTask: ({ delayMs, run, onError, }: {
|
|
24
|
+
export declare const createDelayedPluginTask: ({ runtime, delayMs, run, onError, }: {
|
|
25
|
+
runtime: PluginEffectRuntime;
|
|
14
26
|
delayMs: number;
|
|
15
|
-
run: () => Effect.Effect<void, Error,
|
|
27
|
+
run: () => Effect.Effect<void, Error, Scope.Scope>;
|
|
16
28
|
onError: (error: Error) => void;
|
|
17
29
|
}) => DelayedPluginTask;
|
|
18
30
|
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type ReactRouterEntryPathsOptions = {
|
|
2
|
+
appDirectory: string;
|
|
3
|
+
templatesDirectory: string;
|
|
4
|
+
};
|
|
5
|
+
export type ReactRouterEntryPaths = {
|
|
6
|
+
devServerBuildEntryName: string;
|
|
7
|
+
finalEntryClientPath: string;
|
|
8
|
+
finalEntryRscClientPath: string;
|
|
9
|
+
finalEntryRscPath: string;
|
|
10
|
+
finalEntryRscSsrPath: string;
|
|
11
|
+
finalEntryServerPath: string;
|
|
12
|
+
hasServerApp: boolean;
|
|
13
|
+
serverAppPath: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const resolveReactRouterEntryPaths: ({ appDirectory, templatesDirectory, }: ReactRouterEntryPathsOptions) => ReactRouterEntryPaths;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RsbuildPluginAPI } from '@rsbuild/core';
|
|
2
|
+
export declare const registerReactRouterEnvironmentOutput: ({ api, federation, resolvedServerOutput, }: {
|
|
3
|
+
api: RsbuildPluginAPI;
|
|
4
|
+
federation: boolean | undefined;
|
|
5
|
+
resolvedServerOutput: "commonjs" | "module";
|
|
6
|
+
}) => void;
|
package/dist/export-utils.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ type ExportInfo = {
|
|
|
3
3
|
readonly exportNames: readonly string[];
|
|
4
4
|
readonly exportAllModules: readonly string[];
|
|
5
5
|
};
|
|
6
|
-
type RouteModuleAnalysis = {
|
|
6
|
+
export type RouteModuleAnalysis = {
|
|
7
7
|
readonly code: string;
|
|
8
8
|
readonly exports: readonly string[];
|
|
9
9
|
readonly exportAllModules: readonly string[];
|
|
@@ -11,5 +11,6 @@ type RouteModuleAnalysis = {
|
|
|
11
11
|
export declare const collectProgramExportNames: (program: ProgramNode) => string[];
|
|
12
12
|
export declare const getExportNames: (code: string, resourcePath?: string) => Promise<readonly string[]>;
|
|
13
13
|
export declare const getExportNamesAndExportAll: (code: string, resourcePath?: string) => Promise<ExportInfo>;
|
|
14
|
+
export declare const analyzeRouteModuleCode: (code: string, resourcePath?: string) => RouteModuleAnalysis;
|
|
14
15
|
export declare const getRouteModuleAnalysis: (resourcePath: string) => Promise<RouteModuleAnalysis>;
|
|
15
16
|
export {};
|