Record<string | number | symbol, undefined> & object import {EMPTY_OBJECT} from '@fuzdev/fuz_util/object.js'; Frozen empty object with no properties, good for options default values.
9 declarations
Record<string | number | symbol, undefined> & object import {EMPTY_OBJECT} from '@fuzdev/fuz_util/object.js'; Frozen empty object with no properties, good for options default values.
(value: any): boolean import {is_plain_object} from '@fuzdev/fuz_util/object.js'; Returns a boolean indicating if value is
a plain object, possibly created with Object.create(null).
But warning! This fails for some obscure corner cases, use a proper library for weird things.
valueanyboolean <T, K extends string | number, U>(obj: Record<K, T>, mapper: (value: T, key: string) => U): Record<K, U> import {map_record} from '@fuzdev/fuz_util/object.js'; Iterated keys in for..in are always returned as strings,
so to prevent usage errors the key type of mapper is always a string.
Symbols are not enumerable as keys, so they're excluded.
objRecord<K, T>mapper(value: T, key: string) => URecord<K, U> map_record<T, K extends string | number, U>TKstring | numberU<T extends Record<K, any>, K extends keyof T>(obj: T, keys: K[]): OmitStrict<T, K> import {omit} from '@fuzdev/fuz_util/object.js'; Creates a new object without the specified keys.
objTkeysK[]OmitStrict<T, K> omit<T extends Record<K, any>, K extends keyof T>TRecord<K, any>Kkeyof T<T extends Record<string | number, any>>(obj: T): T import {omit_undefined} from '@fuzdev/fuz_util/object.js'; A commonly used form of pick_by.
objTT obj with all undefined properties removed
omit_undefined<T extends Record<string | number, any>>TRecord<string | number, any><T extends Record<K, any>, K extends string | number>(obj: T, should_pick: (value: any, key: K) => boolean): Partial<T> import {pick_by} from '@fuzdev/fuz_util/object.js'; Creates a new object with properties that pass the should_pick predicate.
objTshould_pick(value: any, key: K) => booleanPartial<T> pick_by<T extends Record<K, any>, K extends string | number>TRecord<K, any>Kstring | number<T extends Record<K, any>, K extends string | number>(obj: T, keys: K[]): T import {reorder} from '@fuzdev/fuz_util/object.js'; A more explicit form of {put_this_first: obj.put_this_first, ...obj}.
objTkeysK[]T reorder<T extends Record<K, any>, K extends string | number>TRecord<K, any>Kstring | number<T>(obj: T): T | undefined import {transform_empty_object_to_undefined} from '@fuzdev/fuz_util/object.js'; objTT | undefined transform_empty_object_to_undefined<T>T(obj: any, cb: (key: string, value: any, obj: any) => void): void import {traverse} from '@fuzdev/fuz_util/object.js'; Performs a depth-first traversal of an object's enumerable properties,
calling cb for every key and value with the current obj context.
objanycbreceives the key, value, and obj for every enumerable property on obj and its descendents
(key: string, value: any, obj: any) => voidvoid