UNPKG

@utilify/object

Version:

These functions simplify many common operations in JavaScript/TypeScript development when working with objects and data structures.

154 lines (101 loc) 4.26 kB
# Utilities - Object The **object utility functions** category includes a variety of practical methods for object manipulation, comparison, and transformation. These functions simplify many common operations in JavaScript/TypeScript development when working with objects and data structures. ## Installation To use the functions in this category, install the **`@utilify/object`** package with your preferred package manager: ### **npm** ```bash npm install @utilify/object ``` ### **Yarn** ```bash yarn add @utilify/object ``` ### **pnpm** ```bash pnpm add @utilify/object ``` ## Usage You can import specific functions as needed: ### **ESM** ```typescript import { clone, deepClone, deepMerge } from '@utilify/object'; ``` ### **CommonJS** ```javascript const { clone, deepClone, deepMerge } = require('@utilify/object'); ``` ## Overview ### [clone](./clone.md) ```typescript function clone<T extends Record<string, any>>(value: T): T; function clone<T extends unknown[]>(value: T): T; ``` Creates a shallow copy of an object or array by directly copying its properties. ### [deepClone](./deepClone.md) ```typescript function deepClone<T extends Record<string, any>>(value: T): T; function deepClone<T extends unknown[]>(value: T): T; ``` Creates a deep copy of an object or array, including all nested properties. ### [deepFreeze](./deepFreeze.md) ```typescript function deepFreeze(obj: Record<string, any>): Record<string, any>; ``` Deeply freezes an object, making its properties and nested properties immutable. ### [deepMerge](./deepMerge.md) ```typescript function deepMerge(...values: Record<string, any>[]): Record<string, any>; ``` Performs a deep merge of multiple objects, combining their properties recursively. ### [flattenObj](./flattenObj.md) ```typescript function flattenObj(obj: Record<string, any>, separator: string = "."): Record<string, any>; ``` Flattens a nested object into a single-level object with keys representing property paths. ### [freeze](./freeze.md) ```typescript function freeze<T>(obj: T): T; ``` Freezes an object, making its properties immutable but does not freeze nested properties. ### [interpolate](./interpolate.md) ```typescript function interpolate(str: string, values: Record<string, any>): string; ``` Replaces placeholders in a string with values provided in an object. ### [isDeepEqual](./isDeepEqual.md) ```typescript function isDeepEqual(value1: Record<string, any>, value2: Record<string, any>): boolean; function isDeepEqual(value1: unknown[], value2: unknown[]): boolean; ``` Compares two objects or arrays deeply to determine if they are structurally and semantically equal. ### [isEqual](./isEqual.md) ```typescript function isEqual(value1: any, value2: any): boolean; ``` Compares two values or references to determine if they are strictly equal using `Object.is`. ### [merge](./merge.md) ```typescript function merge(...values: Record<string, any>[]): Record<string, any>; function merge(...values: unknown[][]): unknown[]; ``` Performs a shallow merge of multiple objects or arrays, combining their properties or elements into a new object or array. ### [omit](./omit.md) ```typescript function omit<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>; ``` Creates a new object from the given object, excluding the specified keys. ### [pick](./pick.md) ```typescript function pick<T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>; ``` Creates a new object containing only the selected keys from the original object. ### [sanitizeObj](./sanitizeObj.md) ```typescript function sanitizeObj(obj: Record<string, any>, values: any[], replace?: any): Record<string, any>; ``` Sanitizes an object by replacing specific values with an optional replacement value. ### [unflattenObj](./unflattenObj.md) ```typescript function unflattenObj(obj: Record<string, any>, separator: string = "."): Record<string, any>; ``` Transforms a flattened object back into its original nested structure using a separator to identify hierarchy levels in the keys.