UNPKG

memoirist

Version:

Elysia's Radix Tree router for fast matching dynamic parameters

50 lines (48 loc) 1.28 kB
interface FindResult<T> { store: T; params: Record<string, any>; } interface ParamNode<T> { name: string; store: T | null; inert: Node<T> | null; } interface Node<T> { part: string; store: T | null; inert: Record<number, Node<T>> | null; params: ParamNode<T> | null; wildcardStore: T | null; } type MaybeArray<T> = T | T[]; type ProcessParam = (value: string, key: string) => unknown; interface Config { /** * lazily create nodes * * @default undefined * @since 0.3.0 */ lazy?: boolean; /** * process dynamic parameter */ onParam?: MaybeArray<ProcessParam>; } declare class Memoirist<T> { config: Config; root: Record<string, Node<T>>; history: [string, string, T][]; deferred: [string, string, T][]; constructor(config?: Config); private static regex; private lazyFind; build(): void; add(method: string, path: string, store: T, { ignoreError, ignoreHistory, lazy }?: { ignoreError?: boolean; ignoreHistory?: boolean; lazy?: boolean; }): FindResult<T>['store']; find(method: string, url: string): FindResult<T> | null; } export { type Config, type FindResult, Memoirist, type Node, type ParamNode, Memoirist as default };