react-smart-state
Version:
Next generation local and global state management
90 lines (89 loc) • 3.18 kB
TypeScript
import { EventItem, WaitngItem, StateType, IEventTrigger, IFastList, ChangeType, ReactSmartStateInstanceItems, SmartStateInstanceNames, StateKeyTypeGenerator } from "./types";
export declare class CustomError extends Error {
originalError: unknown;
code?: string;
details?: any;
constructor(message: string, options?: {
originalError?: unknown;
code?: string;
details?: any;
});
toJSON(): {
name: string;
message: string;
code: string;
details: any;
originalError: unknown;
stack: string;
};
}
export declare class EventTrigger implements IEventTrigger {
events: Record<string, EventItem>;
timer: any;
waitingEvents: IFastList<{
event: EventItem;
items: IFastList<WaitngItem>;
}>;
addedPaths: IFastList<string>;
localBindedEvents: IFastList<IFastList<boolean>, string>;
speed?: number;
stateType: StateType;
batching: IFastList<Function, number>;
seen: WeakMap<any, any>;
ignoreKeys: StateKeyTypeGenerator;
hardIgnoreKeys: StateKeyTypeGenerator;
isMounted?: boolean;
resetState?: () => void;
constructor(ignoredKeys: Record<string, boolean>, hardIgnoreKeys: Record<string, boolean>);
add(id: string, item: EventItem): void;
remove(id: string): void;
hasChange(items: Record<string, WaitngItem>, parentState: Record<string, any>): {
hasChanges: boolean;
parentState: Record<string, any>;
};
triggerSavedChanges(): Promise<void>;
trigger(event: {
eventId: string;
event: EventItem;
}, key: string, oldValue: any, newValue: any): Promise<void>;
onChange(key: string, { oldValue, newValue }: {
oldValue: any;
newValue: any;
}): Promise<void>;
}
export declare class FastList<T, Key extends string | number | symbol = string> implements IFastList<T, Key> {
private items;
private length;
private cachedKeys?;
private cachedValues?;
private invalidateCache;
clear(): this;
get hasValue(): boolean;
get values(): T[];
get keys(): Key[];
find(func: (item: T, key: Key) => boolean): T | undefined;
findKey(func: (item: T, key: Key) => boolean): Key | undefined;
delete(key: Key): this;
get(key: Key): T | undefined;
records(): Record<Key, T>;
record(key: Key): Record<Key, T>;
has(key: Key): boolean;
append(key: Key, item: T): this;
set(key: Key, value: T): T;
get size(): number;
}
export declare class ObservableArray<T> extends Array<T> implements ReactSmartStateInstanceItems {
private readonly parentKey;
private readonly process;
private readonly onChange?;
getInstanceType(): SmartStateInstanceNames;
hasInit?: boolean;
constructor(parentKey: string, process: (item: T, index: number, parentKey: string) => T, onChange?: (action: ChangeType, items: T[], changes: WaitngItem) => void);
private getChanges;
push(...items: T[]): number;
unshift(...items: T[]): number;
pop(): T | undefined;
shift(): T | undefined;
splice(start: number, deleteCount?: number, ...items: T[]): T[];
clear(): void;
}