UNPKG

anux-common

Version:

[![Build Status](https://travis-ci.com/Anupheaus/anux-common.svg?branch=master)](https://travis-ci.com/Anupheaus/anux-common) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/dd0e0bd3a96247a5a78c02a812f949f8)](https://www.codacy.com/app/Anuphea

83 lines (82 loc) 3.81 kB
import './object'; import { MapDelegate, SimpleMapDelegate, IArrayOrderByConfig, IArrayDiff, IMergeWithOptions } from '../models'; import { SortDirections } from '../models/sort'; import { DeepPartial, Record, TypeOf, Upsertable, Updatable, IsPrimitiveOrRecordType } from './global'; import './reflect'; declare type FilterDelegate<T> = (item: T, index: number) => boolean; declare type UpdateDelegate<T> = MapDelegate<T, DeepPartial<T>>; declare type CalculationDelegate<T> = (item: T, index: number, prevItem: T, nextItem: T) => number; declare type DiffMatcherDelegate<T, P> = (sourceItem: T, targetItem: P, sourceIndex: number, targetIndex: number) => boolean; declare type RemoveNull<T> = Exclude<T, null | undefined>; export declare class ArrayExtensions<T> { mapMany<V>(map: MapDelegate<T, V[]>): V[]; ofType<V>(type: TypeOf<V>): V[]; ofType(type: 'string'): string[]; ofType(type: 'number'): number[]; cast<V>(): V[]; single(): T | undefined; single(filter: FilterDelegate<T>): T | undefined; first(): T | undefined; first(filter: FilterDelegate<T>): T | undefined; last(): T | undefined; last(filter: FilterDelegate<T>): T | undefined; clone(): T[]; remove(item: T): T[]; removeAt(index: number): T[]; removeByFilter(filter: FilterDelegate<T>): T[]; removeById(id: string): T[]; indexOfId(id: string): number; findById(id: string): T | undefined; upsert(item: Upsertable<IsPrimitiveOrRecordType<T>>): T[]; upsert(item: Upsertable<IsPrimitiveOrRecordType<T>>, index: number): T[]; upsertMany(this: T[], items: Upsertable<IsPrimitiveOrRecordType<T>>[], newIndex?: number): T[]; upsertWhere(filter: FilterDelegate<T>, update: UpdateDelegate<T | undefined>): T[]; replace(item: T): T[]; replace(item: T, index: number): T[]; replaceMany(items: T[]): T[]; replaceMany(items: T[], index: number): T[]; update(item: Updatable<T & Record>): T[]; update(filter: FilterDelegate<T>, update: UpdateDelegate<T>): T[]; insert(item: T): T[]; insert(item: T, index: number): T[]; chunk(size: number): T[][]; clear(): void; move(from: number, to: number): T[]; orderBy<R>(sorterDelegate: SimpleMapDelegate<T, R>): T[]; orderBy<R>(sorterDelegate: SimpleMapDelegate<T, R>, direction: SortDirections): T[]; orderBy(config: IArrayOrderByConfig<T>[]): T[]; removeNull(): RemoveNull<T>[]; except(array: T[]): T[]; except<U extends Record>(array: U[]): T[]; distinct(): T[]; distinct<V>(delegate: MapDelegate<T, V>): T[]; equals(array: T[]): boolean; equals(array: T[], ignoreOrder: boolean): boolean; sum(): number; sum(delegate: CalculationDelegate<T>): number; min(): number; min(delegate: CalculationDelegate<T>): number; max(): number; max(delegate: CalculationDelegate<T>): number; average(): number; average(delegate: CalculationDelegate<T>): number; absorb(array: T[]): T[]; any(): T; takeUntil(this: T[], delegate: FilterDelegate<T>): T[]; takeUntil(this: T[], delegate: FilterDelegate<T>, andIncluding: boolean): T[]; diff<P extends Record>(items: P[]): IArrayDiff<T, P>; diff<P>(items: P[], matcher: DiffMatcherDelegate<T, P>): IArrayDiff<T, P>; ids(): string[]; mergeWith<P>(items: P[]): T[]; mergeWith<P>(items: P[], options: IMergeWithOptions<T, P>): T[]; syncWith<P>(items: P[]): T[]; syncWith<P>(items: P[], options: IMergeWithOptions<T, P>): T[]; take(count: number): T[]; takeLast(count: number): T[]; skip(count: number): T[]; } export declare class ArrayConstructorExtensions { ofSize<T = any>(length: number): T[]; empty(): Readonly<any[]>; } export {};