stonev5-utils
Version:
all my utils here
23 lines (22 loc) • 1.04 kB
TypeScript
export declare function into<U>(fn: () => U): U;
declare global {
interface Array<T> {
asyncMap<U, K = Awaited<U>>(callback: (value: T, index: number) => U | Promise<U>, postMap?: (value: Awaited<U>, index: number) => K | Promise<K>): Promise<Awaited<K>[]>;
uniq<V = T>(fn?: (value: T, index: number) => V): T[];
chunks(size: number): T[][];
shuffle(): T[];
toMap<K, V>(callback: (value: T, index?: number) => [K, V]): Map<K, V[]>;
toSet<K>(callback: (value: T, index?: number) => K): Set<K>;
mapfilter<U>(callback: (value: T, index?: number) => U | null | undefined): U[];
}
interface Iterator<T> {
toArray(): T[];
}
interface Promise<T> {
thenMap<U>(callback: (value: T extends Array<infer V> ? V : never, index: number, array: T extends Array<infer V> ? V[] : never[]) => U): Promise<U[]>;
}
interface Map<K, V> {
getOr(key: K, defaultValue: V | (() => V)): V;
getSet(key: K, defaultValue: V | (() => V)): V;
}
}