UNPKG

@lincode/utils

Version:

Generated by ambients-cli

75 lines (74 loc) 5.29 kB
export { merge, omit, upperFirst, get, has, unset, range, invert, kebabCase } from "lodash"; export type valueof<T> = T extends ArrayLike<unknown> ? T[number] : T[keyof T]; export type Optional<T, K extends keyof T> = Omit<T, K> & { [k in K]?: T[k]; }; export type Class<T = unknown> = new (...args: Array<any>) => T; export type RequiredNullable<T, RT = Required<T>> = { [P in keyof RT]: RT[P] | undefined; }; export type DeepPartial<T> = { [P in keyof T]?: DeepPartial<T[P]>; }; type ForceGet = { <Key, Val>(map: Map<Key, Val>, obj: Key, factory: () => Val): Val; <Key extends object, Val>(map: WeakMap<Key, Val>, obj: Key, factory: () => Val): Val; }; export declare const forceGet: ForceGet; type ForceGetInstance = { <Key, Val>(map: Map<Key, Val>, obj: Key, ValClass: Class<Val>, params?: Array<unknown>): Val; <Key extends object, Val>(map: WeakMap<Key, Val>, obj: Key, ValClass: Class<Val>, params?: Array<unknown>): Val; }; export declare const forceGetInstance: ForceGetInstance; export declare const assert: (condition: unknown, msg?: string) => asserts condition; export declare const assertExhaustive: (x: never) => never; export declare const isInstance: <T extends Class<unknown>>(target: unknown, ClassVar: T) => target is InstanceType<T>; export declare const isNotNullish: <T>(t?: T | undefined) => t is T; export declare const tryParse: <T>(val: unknown, typeGuard?: ((val: any) => val is T) | undefined) => T | undefined; export declare const includes: <T>(collection: Set<T> | Map<T, unknown>, value: any) => value is T; export declare const filter: <T extends object>(obj: T, predicate: (v: valueof<T>, k: keyof T) => boolean) => Partial<T>; export declare const omitDeep: <T extends object>(obj: T, keys: ReadonlyArray<string>) => T; export declare const set: <T extends object>(obj: T, path: Array<string>, value: any) => void; export declare const traverse: (obj: unknown, cb: (k: string | number, v: any, parent: Record<any, any> | Array<any>) => void, traversed?: WeakSet<object>) => void; export declare const everyAsFirst: <T>(array: T[], predicate: (item: T, first: T) => any) => boolean; export declare const keepOne: <T>(items?: T[] | undefined) => T[]; export declare const pull: <T>(array: T[], item: T) => boolean; export declare const insert: <T>(array: T[], item: T, index: number) => void; export declare const dedupe: <T>(array: T[]) => T[]; export declare const trim: (str: string, char: string) => string; export declare const between: (s: string, char0: string, char1: string) => string; export declare const splitFileName: (fileName: string) => [string, string?]; export declare const random: (min: number, max: number) => number; type Throttle = { <Args extends Array<unknown>, Result>(fn: (...args: Args) => Result, timeout: number, edge: "leading" | "both"): (...args: Args) => Result; <Args extends Array<unknown>, Result>(fn: (...args: Args) => Result, timeout: number, edge: "trailing"): (...args: Args) => Result | undefined; <Args extends Array<unknown>, Result>(fn: (...args: Args) => Result, timeout: number, edge: "trailingPromise"): (...args: Args) => Promise<Result>; }; export declare const throttle: Throttle; export declare const throttleTrailing: <Args extends unknown[]>(fn: (...args: Args) => void, timeout?: number) => (...args: Args) => void; type Debounce = { <Args extends Array<unknown>, Result>(fn: (...args: Args) => Result, timeout: number, edge: "leading" | "both"): (...args: Args) => Result; <Args extends Array<unknown>, Result>(fn: (...args: Args) => Result, timeout: number, edge: "trailing"): (...args: Args) => Result | undefined; <Args extends Array<unknown>, Result>(fn: (...args: Args) => Result, timeout: number, edge: "trailingPromise"): (...args: Args) => Promise<Result>; }; export declare const debounce: Debounce; export declare const isAssignable: (SubClass: Class, SuperClass: Class) => boolean; export declare const getMethods: (obj: object | null) => string[]; export declare const log: <T>(val: T) => T; export declare const extendFunction: <T extends Function>(fn: T | undefined, newFn: T) => T; export declare const omitFunction: <T extends Function>(fn: T, newFn: T) => T; export declare const isLazy: <T>(val: Function) => val is () => T; export declare const lazy: <T, Args extends any[]>(factory: (...a: Args) => T) => (...a: Args) => T; export declare const lazyWithInvalidate: <T, Args extends any[]>(factory: (...a: Args) => T, invalidateWhenReturnValueChanges: () => any) => (...a: Args) => T; export declare const applyMixins: (toClass: any, fromClasses: Array<any>) => void; export declare const preventTreeShake: <T>(obj: T) => T; export declare const filterBoolean: <T>(arg: T) => arg is Exclude<T, null | undefined>; export declare const debounceInstance: <Args extends unknown[]>(fn: (...args: Args) => void) => (instance: any, ...args: Args) => void; type Last = { (val: string, index?: number): string | undefined; <T>(val: Array<T>, index?: number): T | undefined; }; export declare const last: Last; export declare const replaceAll: (val: string, from: string, to: string) => string; export type Callback<Payload = void, ReturnType = void> = (payload: Payload) => ReturnType; export declare const type: <T>(val: T) => T;