UNPKG

history-query-enhancer

Version:
25 lines (24 loc) 1.41 kB
import { History, Location, LocationDescriptorObject, LocationState, Action, UnregisterCallback, Path, Href } from 'history'; export interface EnhancedHistory extends History { location: EnhancedLocation<any>; push(path: Path, state?: LocationState): void; push<Q extends {}>(location: EnhancedLocationDescriptorObject<Q>): void; replace(path: Path, state?: LocationState): void; replace<Q extends {}>(location: EnhancedLocationDescriptorObject<Q>): void; block(prompt?: boolean | string | EnhancedTransitionPromptHook): UnregisterCallback; listen(listener: EnhancedLocationListener): UnregisterCallback; createHref<Q extends {}>(location: EnhancedLocationDescriptorObject<Q>): Href; } export interface EnhancedLocation<Q extends {}> extends Location { query: Partial<Q>; } export interface EnhancedLocationDescriptorObject<Q extends {}> extends LocationDescriptorObject { query?: Q; } export declare type EnhancedLocationDescriptor<Q extends {}> = Path | EnhancedLocationDescriptorObject<Q>; export declare type EnhancedTransitionPromptHook = <Q extends {}>(location: EnhancedLocation<Q>, action: Action) => string | false | void; export declare type EnhancedLocationListener = <Q extends {}>(location: EnhancedLocation<Q>, action: Action) => void; export interface QueryTransformer { parse<Q extends {}>(str: string): Q; stringify<Q extends {}>(obj: Q): string; }