UNPKG

router-primitives

Version:

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

30 lines (29 loc) 1.18 kB
import { IInputLocation, IOutputLocation, StateObserver } from '../types'; import { ISerializedStateStore, SerializedStateSerializer, SerializedStateDeserializer, ISerializedStateStoreConfig } from '../types/serialized_state'; interface INativeStoreConfig extends ISerializedStateStoreConfig { serializer: SerializedStateSerializer; deserializer: SerializedStateDeserializer; historySize: number; } interface ISetStateOptions { updateHistory?: boolean; } export default class NativeStore implements ISerializedStateStore { kind: 'memory'; serializer: SerializedStateSerializer; deserializer: SerializedStateDeserializer; historySize: number; history: string[]; private observers; private currentLocationInHistory; constructor(config?: INativeStoreConfig); setState(unserializedLocation: IInputLocation, options?: ISetStateOptions): void; getState(): IOutputLocation; subscribeToStateChanges(fn: StateObserver): void; unsubscribeFromStateChanges(fn: StateObserver): void; back(): void; forward(): void; go(historyChange: number): void; private notifyObservers; } export {};