rsbuild-plugin-react-router
Version:
React Router plugin for Rsbuild
48 lines (47 loc) • 2.33 kB
TypeScript
import type { RsbuildDevServer, Rspack } from '@rsbuild/core';
import type { ServerBuild } from 'react-router';
import type { ReactRouterManifestForDev } from './manifest.js';
export type ReactRouterDevManifest = ReactRouterManifestForDev;
export type ReactRouterDevBuildPlan = {
defaultEntryName: string;
entryNames: readonly string[];
};
export type ReactRouterDevManifestSet = Readonly<Record<string, ReactRouterDevManifest>>;
export type ReactRouterServerBuilds = Readonly<Record<string, ServerBuild>>;
export type PairedDevStats = {
web: Rspack.Stats;
node: Rspack.Stats;
};
export type DevRuntimeStats = Rspack.Stats | Rspack.MultiStats | PairedDevStats;
export type DependencySnapshot = {
files: ReadonlySet<string>;
contexts: ReadonlySet<string>;
missing: ReadonlySet<string>;
};
export type DevChangedFiles = {
known: boolean;
files: ReadonlySet<string>;
};
export type DevGraphChanges = {
web: DevChangedFiles;
node: DevChangedFiles;
};
export type DevCompilationIdentity = symbol;
export type DevCompileAttemptIdentity = symbol;
export type DevGraphIdentity = {
web: DevCompilationIdentity | undefined;
node: DevCompilationIdentity | undefined;
nodeWeb: DevCompilationIdentity | undefined;
attempt: DevCompileAttemptIdentity | undefined;
};
export type WebArtifact = {
manifestsByEntryName: ReactRouterDevManifestSet;
dependencies: DependencySnapshot;
};
export declare const snapshotDevChangedFiles: (compiler: Pick<Rspack.Compiler, "modifiedFiles" | "removedFiles"> | undefined) => DevChangedFiles;
export declare const snapshotDependencies: (compilation: Rspack.Compilation) => DependencySnapshot;
export declare const isSafeOneSidedChange: (changes: DevChangedFiles, dependencies: DependencySnapshot) => boolean;
export declare const isPairedDevStats: (stats: DevRuntimeStats) => stats is PairedDevStats;
export declare const getEnvironmentStats: (stats: DevRuntimeStats, name: "web" | "node") => Rspack.Stats | undefined;
export declare const evaluateServerBuilds: (server: RsbuildDevServer, entryNames: readonly string[]) => Promise<ReactRouterServerBuilds>;
export declare const pinServerBuildsToManifests: (builds: ReactRouterServerBuilds, entryNames: readonly string[], manifestsByEntryName: ReactRouterDevManifestSet) => ReactRouterServerBuilds;