UNPKG

@jlhv/object-helper

Version:

A simple utility library for object manipulation.

37 lines (36 loc) 2.46 kB
/** * Object Helper Library * Provides utility functions for object operations. */ /** Checks if an object is empty. */ export declare function isEmpty(obj: Record<string, any>): boolean; /** Merges two objects without modifying the originals. */ export declare function merge<T extends Record<string, any>, U extends Record<string, any>>(obj1: T, obj2: U): T & U; /** Deep clones an object. */ export declare function deepClone<T>(obj: T): T; /** Picks specific keys from an object. */ export declare function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>; /** Omits specific keys from an object. */ export declare function omit<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>; /** Checks if two objects are equal (shallow comparison). */ export declare function isEqual<T extends Record<string, any>>(obj1: T, obj2: T): boolean; /** Checks if an object has a nested property. */ export declare function hasNested(obj: Record<string, any>, path: string): boolean; /** Gets a nested property value from an object safely. */ export declare function getNested<T>(obj: Record<string, any>, path: string, defaultValue?: T): T | undefined; /** Sets a nested property value in an object. */ export declare function setNested<T>(obj: Record<string, any>, path: string, value: T): void; /** Inverts an object's keys and values. */ export declare function invert<T extends Record<string, any>>(obj: T): Record<string, keyof T>; /** Converts an object to an array of key-value pairs. */ export declare function toPairs<T extends Record<string, any>>(obj: T): [keyof T, T[keyof T]][]; /** Converts an array of key-value pairs to an object. */ export declare function fromPairs<T>(pairs: [string, T][]): Record<string, T>; /** Freezes an object to prevent modifications. */ export declare function freeze<T>(obj: T): Readonly<T>; /** Maps over object values and returns a new object. */ export declare function mapValues<T extends Record<string, any>, U>(obj: T, callback: (value: T[keyof T], key: keyof T) => U): Record<keyof T, U>; /** Filters object properties based on a predicate function. */ export declare function filter<T extends Record<string, any>>(obj: T, predicate: (value: T[keyof T], key: keyof T) => boolean): Partial<T>; /** Deep merges two objects. */ export declare function deepMerge<T extends Record<string, any>, U extends Record<string, any>>(obj1: T, obj2: U): T & U;