UNPKG

router-primitives

Version:

A cross-platform application router. Declarative routing by way of layout primitives

44 lines (43 loc) 4.77 kB
import { TracerSession } from './tracer'; import { IManager } from './types/manager'; import { ActionWraperFnDecorator, IInputLocation, IRouterCreationInfo, IRouterConfig, IRouterDeclaration, IRouterInitArgs, NarrowRouterTypeName, Root, ManagerRouterTypes, IManagerInit, IRouterTemplates, RouterInstance, AllTemplates, RouterCustomStateFromTemplates, RouterCurrentStateFromTemplates, ExtractCustomStateFromTemplate, IRouterActionOptions, RouterTemplateUnion, ReducerContext } from './types'; import { IRouterCache } from './types/router_cache'; export default class Manager<CustomTemplates extends IRouterTemplates<unknown> = {}> implements IManager<CustomTemplates> { printTracerResults: boolean; actionFnDecorator?: ActionWraperFnDecorator<CustomTemplates, any>; tracerSession: TracerSession; _routers: Record<string, RouterInstance<CustomTemplates>>; rootRouter: Root<CustomTemplates>; serializedStateStore: IManagerInit<CustomTemplates>['serializedStateStore']; routerStateStore: IManagerInit<CustomTemplates>['routerStateStore']; routerTypes: ManagerRouterTypes<CustomTemplates>; templates: AllTemplates<CustomTemplates>; routerCache: IRouterCache<ExtractCustomStateFromTemplate<RouterTemplateUnion<AllTemplates<CustomTemplates>>>>; actionCount: number; cacheKey: string; removeCacheAfterRehydration: boolean; errorWhenMissingData: boolean; constructor(initArgs?: IManagerInit<CustomTemplates>, { shouldInitialize, actionFnDecorator }?: { shouldInitialize: boolean; actionFnDecorator?: ActionWraperFnDecorator<CustomTemplates, any>; }); incrementActionCount(): void; initializeManager({ routerDeclaration, serializedStateStore, routerStateStore, router, customTemplates, routerCacheClass, printTraceResults, cacheKey, removeCacheAfterRehydration, errorWhenMissingData }: IManagerInit<CustomTemplates>): void; get routers(): Record<string, RouterInstance<CustomTemplates>>; linkTo: (routerName: string, actionName: string, actionArgs?: Pick<IRouterActionOptions<ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[keyof AllTemplates<CustomTemplates>]>>, "data" | "disableCaching" | "pathData" | "replaceLocation" | "addCacheToLocation">) => string; addRouters: (router?: IRouterDeclaration<AllTemplates<CustomTemplates>>, type?: NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>, parentName?: string) => void; addRouter(routerDeclaration: IRouterDeclaration<AllTemplates<CustomTemplates>>): void; removeRouter: (name: string) => void; registerRouter(name: string, router: RouterInstance<CustomTemplates>): void; unregisterRouter(name: string): void; calcNewRouterState<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>(location: IInputLocation, router: RouterInstance<CustomTemplates, NarrowRouterTypeName<Name>>, ctx?: ReducerContext<CustomTemplates, Name>, newState?: Record<string, RouterCurrentStateFromTemplates<AllTemplates<CustomTemplates>>>): Record<string, RouterCurrentStateFromTemplates<AllTemplates<CustomTemplates>>>; createRouterConfigArgs<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>(routerDeclaration: IRouterDeclaration<AllTemplates<CustomTemplates>>, routerType: Name, parent: RouterInstance<CustomTemplates, Name>): IRouterConfig<RouterCustomStateFromTemplates<AllTemplates<CustomTemplates>>>; validateNeighborsOfOtherTypesArentPathRouters<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>(router: RouterInstance<CustomTemplates, Name>): void; validateRouterCreationInfo<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>(name: string, type: Name, config: IRouterConfig<RouterCustomStateFromTemplates<AllTemplates<CustomTemplates>>>): void; createNewRouterInitArgs<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>({ name, config, type, parentName }: IRouterCreationInfo<CustomTemplates, NarrowRouterTypeName<Name>>): IRouterInitArgs<CustomTemplates, NarrowRouterTypeName<Name>>; createRouterFromInitArgs<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>(initalArgs: IRouterInitArgs<CustomTemplates, NarrowRouterTypeName<Name>>): RouterInstance<CustomTemplates, NarrowRouterTypeName<Name>>; setCacheFromLocation: (location: IInputLocation) => void; removeCacheFromLocation: (existingLocation: IInputLocation) => void; setNewRouterState(location: IInputLocation): void; createRouter<Name extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>({ name, config, type, parentName }: IRouterCreationInfo<CustomTemplates, NarrowRouterTypeName<Name>>): RouterInstance<CustomTemplates, Name>; }