@konfirm/decoy
Version:
Proxy objects, keeping track of mutations to commit/rollback
11 lines (10 loc) • 476 B
TypeScript
import { Trap } from "@konfirm/trap";
type Proxy<T> = T;
type Delegate<T extends object = object> = (target: T) => Proxy<T>;
export declare class DecoyTrap extends Trap {
constructor(delegate: Delegate, onlyLastKeyMutation?: boolean);
delegate<T extends object = object>(value: T): Proxy<T>;
cache<T extends object = object>(target: any, value: any): Proxy<T>;
get<T extends object = object, K extends keyof T = keyof T>(target: T, key: K): T[K];
}
export {};