@jlhv/object-helper
Version:
A simple utility library for object manipulation.
37 lines (36 loc) • 2.46 kB
TypeScript
/**
* 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;