rsbuild-plugin-react-router
Version:
React Router plugin for Rsbuild
92 lines (78 loc) • 2.06 kB
text/typescript
export const PLUGIN_NAME = 'rsbuild:react-router';
export const JS_EXTENSIONS = [
'.tsx',
'.ts',
'.jsx',
'.js',
'.mjs',
'.mts',
] as const;
export const JS_LOADERS = {
'.ts': 'ts',
'.tsx': 'tsx',
'.js': 'js',
'.jsx': 'jsx',
'.mjs': 'js',
'.mts': 'ts',
} as const;
export const BUILD_CLIENT_ROUTE_QUERY_STRING =
'?__react-router-build-client-route';
export const SERVER_ONLY_ROUTE_EXPORTS = [
'loader',
'action',
'middleware',
'headers',
] as const;
export const SERVER_ONLY_ROUTE_EXPORTS_SET: ReadonlySet<string> = new Set(
SERVER_ONLY_ROUTE_EXPORTS
);
// Client route exports are split into non-component exports and component exports.
// This mirrors upstream React Router Vite plugin intent and is used for export filtering.
export const CLIENT_NON_COMPONENT_EXPORTS = [
'clientAction',
'clientLoader',
'clientMiddleware',
'handle',
'meta',
'links',
'shouldRevalidate',
] as const;
export const CLIENT_COMPONENT_EXPORTS = [
'default',
'ErrorBoundary',
'HydrateFallback',
'Layout',
] as const;
export const CLIENT_ROUTE_EXPORTS: readonly (
| (typeof CLIENT_NON_COMPONENT_EXPORTS)[number]
| (typeof CLIENT_COMPONENT_EXPORTS)[number]
)[] = [...CLIENT_NON_COMPONENT_EXPORTS, ...CLIENT_COMPONENT_EXPORTS];
export const CLIENT_ROUTE_EXPORTS_SET: ReadonlySet<string> = new Set(
CLIENT_ROUTE_EXPORTS
);
export const NAMED_COMPONENT_EXPORTS = [
'HydrateFallback',
'ErrorBoundary',
] as const;
export const NAMED_COMPONENT_EXPORTS_SET: ReadonlySet<string> = new Set(
NAMED_COMPONENT_EXPORTS
);
export const SERVER_EXPORTS = {
loader: 'loader',
action: 'action',
middleware: 'middleware',
headers: 'headers',
} as const;
export const CLIENT_EXPORTS = {
clientAction: 'clientAction',
clientLoader: 'clientLoader',
clientMiddleware: 'clientMiddleware',
default: 'default',
ErrorBoundary: 'ErrorBoundary',
handle: 'handle',
HydrateFallback: 'HydrateFallback',
Layout: 'Layout',
links: 'links',
meta: 'meta',
shouldRevalidate: 'shouldRevalidate',
} as const;