rsbuild-plugin-react-router
Version:
React Router plugin for Rsbuild
30 lines (29 loc) • 1.76 kB
TypeScript
import { type RouteTransformResult, type RouteTransformTask, type RouteTransformTaskOptions } from './route-transform-tasks.js';
import type { PluginOptions } from './types.js';
import type { WorkerRequest, WorkerResponse } from './parallel-route-transform-protocol.js';
export type ParallelRouteTransformConfig = NonNullable<PluginOptions['parallelRouteTransform']> extends infer Config ? Exclude<Config, false> : never;
export type RouteTransformExecutorOptions = RouteTransformTaskOptions & {
parallelRouteTransform?: PluginOptions['parallelRouteTransform'];
splitRouteModules?: boolean;
isBuild?: boolean;
};
export type RouteTransformExecutor = {
run: (task: RouteTransformTask) => Promise<RouteTransformResult>;
prewarm: () => void;
close: () => Promise<void>;
};
type RouteTransformWorker = {
on(event: 'message', handler: (response: WorkerResponse) => void): unknown;
on(event: 'error', handler: (error: Error) => void): unknown;
on(event: 'exit', handler: (code: number) => void): unknown;
postMessage(message: WorkerRequest): void;
terminate(): Promise<number> | number;
};
type RouteTransformWorkerFactory = () => RouteTransformWorker;
export declare const getDefaultWorkerCount: (cpuCount?: number, { isBuild }?: {
isBuild?: boolean;
}) => number;
export declare const shouldParallelizeRouteTransforms: (routeCount: number) => boolean;
export declare const createRouteTransformExecutor: ({ parallelRouteTransform, routeChunkCache, splitRouteModules, isBuild, }?: RouteTransformExecutorOptions) => RouteTransformExecutor;
export declare const createRouteTransformExecutorForTesting: (options: RouteTransformExecutorOptions, createWorker: RouteTransformWorkerFactory) => RouteTransformExecutor;
export {};