UNPKG

rxdeep

Version:
18 lines (17 loc) 573 B
export declare type ChangeTraceLeaf<T> = { from: T | undefined; to: T | undefined; }; export declare type ChangeTraceNode<T> = { subs: (T extends any[] ? { [index: number]: ChangeTrace<T[number]>; } : Partial<{ [K in keyof T]: ChangeTrace<T[K]>; }>) | {}; }; export declare type ChangeTrace<T> = ChangeTraceLeaf<T> | ChangeTraceNode<T>; export interface Change<T> { value: T | undefined; trace?: ChangeTrace<T> | undefined; } export declare function isLeaf<T>(c: ChangeTrace<T> | undefined): c is ChangeTraceLeaf<T> | undefined;