UNPKG

@mfederczuk/deeptools

Version:

A set of utility functions that recursively operate on objects

46 lines (45 loc) 1.66 kB
export type DeepFreezeOptions = { /** * Detects circular references in objects and avoids infinite recursion. * * Default is `false`. */ mindCircularReferences?: boolean; }; /** * Recursively freezes **arr** and all of its items & other properties. * * @param arr The 3-dimensional array to freeze. * @param options Options to change the behavior of `deepFreeze`. * * @returns **arr**, deeply frozen. */ declare function deepFreeze<T>(arr: readonly (readonly (readonly T[])[])[], options?: Readonly<DeepFreezeOptions>): readonly (readonly (readonly Readonly<T>[])[])[]; /** * Recursively freezes **arr** and all of its items & other properties. * * @param arr The 2-dimensional array to freeze. * @param options Options to change the behavior of `deepFreeze`. * * @returns **arr**, deeply frozen. */ declare function deepFreeze<T>(arr: readonly (readonly T[])[], options?: Readonly<DeepFreezeOptions>): readonly (readonly Readonly<T>[])[]; /** * Recursively freezes **arr** and all of its items & other properties. * * @param arr The 1-dimensional array to freeze. * @param options Options to change the behavior of `deepFreeze`. * * @returns **arr**, deeply frozen. */ declare function deepFreeze<T>(arr: readonly T[], options?: Readonly<DeepFreezeOptions>): readonly Readonly<T>[]; /** * Recursively freezes **obj** and all of its properties. * * @param obj The object to freeze. * @param options Options to change the behavior of `deepFreeze`. * * @returns **obj**, deeply frozen. */ declare function deepFreeze<T>(obj: T, options?: Readonly<DeepFreezeOptions>): Readonly<T>; export { deepFreeze };