UNPKG

router-primitives

Version:

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

41 lines (40 loc) 2.95 kB
import { IRouterDeclaration, ISerializeOptions, IRouterInitArgs, RouterInstance, ExtractCustomStateFromTemplate, RouterCurrentState, RouterHistoricalState, IRouterTemplates, NeighborsOfType, NarrowRouterTypeName, Childs, Parent, Root, IInputLocation, AllTemplates, LinkOptions } from './types'; import { IRouterBase } from './types/router_base'; export interface IInternalState { isActive?: boolean; } export default class RouterBase<CustomTemplates extends IRouterTemplates, RouterTypeName extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>, InitArgs extends IRouterInitArgs<CustomTemplates, NarrowRouterTypeName<RouterTypeName>> = IRouterInitArgs<CustomTemplates, NarrowRouterTypeName<RouterTypeName>>> implements IRouterBase<CustomTemplates, RouterTypeName, InitArgs> { name: InitArgs['name']; type: InitArgs['type']; manager: InitArgs['manager']; parent?: Parent<CustomTemplates>; children: Childs<CustomTemplates>; root: Root<CustomTemplates>; getState?: InitArgs['getState']; subscribe?: InitArgs['subscribe']; config: InitArgs['config']; _EXPERIMENTAL_internal_state: IInternalState; constructor(init: InitArgs); link: (actionName: string, options?: LinkOptions<ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[RouterTypeName]>>) => string; get lastDefinedParentsDisableChildCacheState(): boolean; get routeKey(): string; get data(): ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[RouterTypeName]>; get siblings(): RouterInstance<CustomTemplates, RouterTypeName>[]; getNeighborsByType<DesiredType extends NarrowRouterTypeName<keyof AllTemplates<CustomTemplates>>>(type: DesiredType): Array<RouterInstance<CustomTemplates, DesiredType>>; getLocationDataFromLocationObject: (location: IInputLocation) => string | number | boolean | string[] | number[]; getNeighbors(): NeighborsOfType<CustomTemplates, NarrowRouterTypeName<Exclude<keyof AllTemplates<CustomTemplates>, RouterTypeName>>>; get pathLocation(): number; get isRootRouter(): boolean; EXPERIMENTAL_setInternalState(internalState: IInternalState): void; get EXPERIMENTAL_internal_state(): IInternalState; serialize(options?: ISerializeOptions): IRouterDeclaration<AllTemplates<CustomTemplates>> & { [key: string]: any; }; get isPathRouter(): boolean; get state(): RouterCurrentState<ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[RouterTypeName]>>; protected _state: () => RouterCurrentState<ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[RouterTypeName]>> & { isActive?: boolean; }; get history(): RouterHistoricalState<ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[RouterTypeName]>>; protected _history: () => RouterHistoricalState<ExtractCustomStateFromTemplate<AllTemplates<CustomTemplates>[RouterTypeName]>>; }