UNPKG

@berish/linq

Version:

LINQ - very usefull helper for working with arrays and collections

56 lines (55 loc) 3.73 kB
import Decimal from 'decimal.js'; type CallbackType<T, Response> = (item: T, index: number, linq: LINQ<T>) => Response; type CallbackWithAccumType<T, Response, Accum> = (item: T, index: number, linq: LINQ<T>, accum: Accum) => Response; type CallbackCompareType<T, Response> = (a: T, b: T) => Response; type CallbackOnlyItemType<T, Response> = (item: T) => Response; type OfTypeStringValues = 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function'; export default class LINQ<T> extends Array<T> { static from<T>(items?: T[] | LINQ<T>): LINQ<T>; static isLINQ(data: any): data is LINQ<any>; toArray(): T[]; clone(): LINQ<T>; equals(linq: any[]): boolean; equalsValues<K>(linq: any[], selectFunc?: CallbackType<T, K>): boolean; where(whereFunc?: CallbackType<T, boolean>): LINQ<T>; whereInSelect<K>(selectFunc: CallbackType<T, K>, whereFunc: CallbackType<K, boolean>): LINQ<T>; whereInSelectWithAccum<K, Accum = LINQ<K>>(selectFunc: CallbackType<T, K>, getAccumFunc: (selected: LINQ<K>, linq: LINQ<T>) => Accum, whereFunc: CallbackWithAccumType<K, boolean, Accum>): LINQ<T>; select(): LINQ<T>; select<K>(selectFunc: CallbackType<T, K>): LINQ<K>; selectMany<K>(selectFunc?: CallbackType<T, K[]>): LINQ<K>; take(count: number): LINQ<T>; skip(count: number): LINQ<T>; count(whereFunc?: CallbackType<T, boolean>): number; indexWhere(whereFunc?: CallbackType<T, boolean>): LINQ<number>; elementsAtIndex(indexes: number[]): LINQ<T>; notNull<K>(selectFunc?: CallbackType<T, K>): LINQ<T>; notEmpty<K>(selectFunc?: CallbackType<T, K>): LINQ<T>; first(whereFunc?: CallbackType<T, boolean>): T; last(whereFunc?: CallbackType<T, boolean>): T; distinct<K>(selectFunc?: CallbackType<T, K>): LINQ<T>; max(numberFunc?: CallbackType<T, Decimal.Value>): LINQ<T>; maxValue(numberFunc?: CallbackType<T, Decimal.Value>): Decimal; min(numberFunc?: CallbackType<T, Decimal.Value>): LINQ<T>; minValue(numberFunc?: CallbackType<T, Decimal.Value>): Decimal; ofType<Type extends new (...args: any[]) => any, K>(type: OfTypeStringValues | OfTypeStringValues[] | Type | Type[] | (OfTypeStringValues | Type)[], selectFunc?: CallbackType<T, K>): LINQ<T>; orderByAscending<K>(sortSelectFunc?: CallbackOnlyItemType<T, K>): LINQ<T>; orderByDescending<K>(sortSelectFunc?: CallbackOnlyItemType<T, K>): LINQ<T>; sum(selectFunc?: CallbackType<T, Decimal.Value>): Decimal; except<K>(items: T | T[] | LINQ<T>, selectFunc?: CallbackType<T, K>): LINQ<T>; groupBy<K>(selectFunc: CallbackType<T, K>, compareKeyFunc?: CallbackCompareType<K, boolean>): LINQ<[K, LINQ<T>]>; contains<K>(value: T, selectFunc?: CallbackOnlyItemType<T, K>): boolean; containsAll<K>(value: T[] | LINQ<T>, selectFunc?: CallbackType<T, K>): boolean; average(selectFunc?: CallbackType<T, Decimal.Value>, whereFunc?: CallbackType<T, boolean>): Decimal; intersect<K>(items: T | T[] | LINQ<T>, selectFunc?: CallbackType<T, K>): LINQ<T>; reverse(): LINQ<T>; concat(...items: ConcatArray<T>[]): LINQ<T>; concat(...items: (T | ConcatArray<T>)[]): LINQ<T>; concat(...items: (T | ConcatArray<T> | LINQ<T>)[]): LINQ<T>; slice(start?: number, end?: number): LINQ<T>; splice(start: number, deleteCount?: number): LINQ<T>; splice(start: number, deleteCount: number, ...items: T[]): LINQ<T>; map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): LINQ<U>; filter<S extends T>(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): LINQ<S>; filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): LINQ<T>; } export {};