UNPKG

@gamestdio/state-listener

Version:

Deeply compare JavaScript objects and listen to changes.

26 lines (25 loc) 814 B
import { PatchObject } from "./compare"; export interface Listener { callback: Function; rules: RegExp[]; rawRules: string[]; } export interface DataChange extends PatchObject { path: any; rawPath: string[]; } export declare class StateContainer<T = any> { state: T; private listeners; private defaultListener; private matcherPlaceholders; constructor(state: T); set(newState: T): PatchObject[]; registerPlaceholder(placeholder: string, matcher: RegExp): void; listen(segments: string | Function, callback?: Function, immediate?: boolean): Listener; removeListener(listener: Listener): void; removeAllListeners(): void; private checkPatches(patches, listeners, defaultListener?); private getPathVariables(patch, listener); private reset(); }