UNPKG

@tanstack/router-plugin

Version:

Modern and scalable routing for React applications

44 lines (43 loc) 1.76 kB
import { default as babel } from '@babel/core'; import { Config, DeletableNodes } from '../config.js'; import { CodeSplitGroupings } from '../constants.js'; import { SplitNodeMeta } from './types.js'; import type * as t from '@babel/types'; export type CompileCodeSplitReferenceRouteOptions = { codeSplitGroupings: CodeSplitGroupings; deleteNodes?: Set<DeletableNodes>; targetFramework: Config['target']; filename: string; id: string; addHmr?: boolean; hmrHotExpression?: string; sharedBindings?: Set<string>; }; export type ReferenceRouteCompilerPluginContext = { programPath: babel.NodePath<t.Program>; callExpressionPath: babel.NodePath<t.CallExpression>; insertionPath: babel.NodePath; routeOptions: t.ObjectExpression; createRouteFn: string; opts: CompileCodeSplitReferenceRouteOptions; }; export type ReferenceRouteSplitPropertyCompilerPluginContext = { programPath: babel.NodePath<t.Program>; callExpressionPath: babel.NodePath<t.CallExpression>; insertionPath: babel.NodePath; routeOptions: t.ObjectExpression; prop: t.ObjectProperty; splitNodeMeta: SplitNodeMeta; lazyRouteComponentIdent: string; opts: CompileCodeSplitReferenceRouteOptions; }; export type ReferenceRouteCompilerPluginResult = { modified?: boolean; }; export type ReferenceRouteCompilerPlugin = { name: string; getStableRouteOptionKeys?: () => Array<string>; onAddHmr?: (ctx: ReferenceRouteCompilerPluginContext) => void | ReferenceRouteCompilerPluginResult; onUnsplittableRoute?: (ctx: ReferenceRouteCompilerPluginContext) => void | ReferenceRouteCompilerPluginResult; onSplitRouteProperty?: (ctx: ReferenceRouteSplitPropertyCompilerPluginContext) => void | t.Expression; };