UNPKG

@tanstack/router-plugin

Version:

Modern and scalable routing for React applications

55 lines (49 loc) 1.7 kB
import type babel from '@babel/core' import type * as t from '@babel/types' import type { Config, DeletableNodes } from '../config' import type { CodeSplitGroupings } from '../constants' import type { SplitNodeMeta } from './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 }