my-utils-kit
Version:
A lightweight and type-safe utility library for working with strings, objects, array Performance methods in TypeScript. Includes helpful methods for deep cloning, object transformations, safe access, query string handling, and more — designed for modern J
50 lines (49 loc) • 3.69 kB
TypeScript
export declare function deepCloneObj<T>(obj: T): T;
export declare function deepMerge<T extends Record<string, any>, U extends Record<string, any>>(target: T, source: U): T & U;
export declare function isEmpty<T extends object>(obj: T): boolean;
export declare function pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
export declare function omit<T, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
export declare function flattenObject(obj: Record<string, any>, parentKey?: string, result?: Record<string, any>): Record<string, any>;
export declare function unflattenObject(obj: Record<string, any>): Record<string, any>;
export declare function invertObj<T extends Record<string, string | number | symbol>>(obj: T): Record<string, keyof T>;
export declare function hasKey(obj: Record<string, any>, key: string): boolean;
export declare function getNestedValue<T>(obj: Record<string, any>, path: string): Record<string, any>;
export declare function setNestedValue<T>(obj: Record<string, any>, path: string, value: T): boolean;
export declare function deleteKey<T>(obj: Record<string, T>, key: string): Record<string, T>;
export declare function deepEqual(obj1: any, obj2: any): boolean;
export declare function getDeepObjectSize(obj: Record<string, any>): number;
export declare function transformObjectKeys<T>(obj: Record<string, T>, transformFn: (key: string) => string): Record<string, T>;
export declare function transformObjectValues<T>(obj: Record<string, T>, transformFn: (value: T) => T): Record<string, T>;
export declare function objectToQueryString(obj: Record<string, any>): string;
export declare function queryStringToObject(queryString: string): Record<string, string>;
export declare function deepFreeze(obj: Record<string, any>): void;
export declare function seal(obj: Record<string, any>): void;
export declare function deepSeal(obj: Record<string, any>): void;
export declare function deepIsFrozen(obj: Record<string, any>): boolean;
export declare function deepIsSealed(obj: Record<string, any>): boolean;
export declare function hasDeepKey(obj: Record<string, any>, key: string): boolean;
export declare function isPlainObject(value: any): boolean;
export declare class TypeUtils {
static isNumber(value: any): boolean;
static isString(value: any): boolean;
static isBoolean(value: any): boolean;
static isObject(value: any): boolean;
static isArray(value: any): boolean;
static isFunction(value: any): boolean;
static isNull(value: any): boolean;
static isUndefined(value: any): boolean;
static isSymbol(value: any): boolean;
static isPlainObject(value: any): boolean;
static isDate(value: any): boolean;
static isRegExp(value: any): boolean;
static isInstanceOf(value: any, constructor: Function): boolean;
static getType(value: any): string;
}
export declare function isSubset<T>(obj1: Record<string, T>, obj2: Record<string, T>): boolean;
export declare function groupByKeys<T>(arr: T[], keys: (keyof T)[]): Record<string, T[]>;
export declare function arrayToObject<T extends Record<string, any>, K extends keyof T>(arr: T[], key: K): Record<string, T>;
export declare function getUniqueByKey<T extends Record<string, any>, K extends keyof T>(arr: T[], key: K): T[];
export declare function shallowCopy<T extends object>(obj: T): T;
export declare function intersectObjects<T extends Record<string, any>>(obj1: T, obj2: T): Partial<T>;
export declare function diffObjects<T extends Record<string, any>>(obj1: T, obj2: T): Partial<T>;
export declare function mapObjectValues<T, U>(obj: Record<string, T>, callback: (value: T, key: string, obj: Record<string, T>) => U): Record<string, U>;