@gamestdio/state-listener
Version:
Deeply compare JavaScript objects and listen to changes.
26 lines (25 loc) • 814 B
TypeScript
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();
}