UNPKG

@donverduyn/react-runtime

Version:
20 lines (19 loc) 1.42 kB
export declare function isPlainObject(value: unknown): value is Record<string, unknown>; export declare function deepEqual(objA: unknown, objB: unknown, options?: { strict?: boolean; }): boolean; export declare const isShallowEqual: <T>(a: React.PropsWithChildren<T> | undefined | null, b: React.PropsWithChildren<T> | undefined | null) => boolean; type DeepClone<T> = T extends Primitive ? T : T extends Date ? Date : T extends RegExp ? RegExp : T extends Map<infer K, infer V> ? Map<DeepClone<K>, DeepClone<V>> : T extends Set<infer U> ? Set<DeepClone<U>> : T extends Array<infer U> ? DeepCloneArray<U> : T extends object ? DeepCloneObject<T> : T; type Primitive = string | number | boolean | bigint | symbol | null | undefined; interface DeepCloneArray<T> extends Array<DeepClone<T>> { } type DeepCloneObject<T> = { [K in keyof T]: DeepClone<T[K]>; }; export declare function cloneDeep<T>(value: T, seen?: WeakMap<object, unknown>): DeepClone<T>; type DeepFreeze<T> = T extends (...args: any[]) => unknown ? T : T extends Array<infer U> ? ReadonlyArray<DeepFreeze<U>> : T extends Map<infer K, infer V> ? ReadonlyMap<DeepFreeze<K>, DeepFreeze<V>> : T extends Set<infer U> ? ReadonlySet<DeepFreeze<U>> : T extends object ? { readonly [K in keyof T]: DeepFreeze<T[K]>; } : T; export declare function deepFreeze<T>(obj: T): DeepFreeze<T>; export declare function stableStringify(obj: unknown): string; export {};