UNPKG

@beenotung/tslib

Version:
40 lines (39 loc) 2.2 kB
import type { ApplyUndefinedType } from './assert'; export declare function isObject(o: any): boolean; export declare function hasFunction(o: object | any[], name: PropertyKey): boolean; export declare function deepClone<A extends object>(o: A): A; export declare function deepEqual(a: any, b: any): boolean; export declare function replaceObject<A extends object>(dest: A, src: A): A; export declare const SafeObjectOptions: { throwError: boolean; }; /** * make a loss object, very forgiving * */ export declare function createSafeObject(target?: object): any; export declare const updateObject: <T extends object, U extends object>(dest: T) => (x: U) => T & U; export declare const isNull: (x: any) => boolean; export declare function removeNull<A>(o: A): A; /** * @param {any} o : value to be checked * @param {boolean} skip : true will remove duplicated value silently; * false will throw an error upon duplication * @param {any} placeholder : custom value to replace duplicated object * @param {function} mapper : optional map function * @param {Set} visited : internal book keeping seen objects * */ export declare function ensureNonCyclic<A>(o: A, skip?: boolean, placeholder?: any, mapper?: (a: any) => any, visited?: Set<unknown>): A; export declare function deleteUndefined(o: ApplyUndefinedType): void; /** * to encode json data in csv-style * i.e. only need to store the keys once for a large collection (e.g. Array / Set) * */ export declare function objectToValues<T extends object>(o: T, keys?: Array<keyof T>): Array<T[keyof T]>; /** * to decode json data from csv-style * i.e. populate values and keys to a collection (e.g. Array / Set) * */ export declare function valuesToObject<T>(values: Array<T[keyof T]>, keys: Array<keyof T>): T; export declare function objectGetOrSetDefault<V = any, K extends PropertyKey = string>(object: Record<K, V>, key: K, f: () => V): V; export declare function objectPick<T extends object, K extends keyof T = keyof T>(object: T, keys: K[]): Pick<T, K>; export declare function incObject<K extends PropertyKey>(object: Record<K, number>, key: K): void;