@algochad/prisma-core
Version:
A comprehensive NestJS library that provides EF-Core-like operations using Prisma and GraphQL. Features LINQ-style query builders, advanced data manipulation, GraphQL integration with genql, and a unified API for both Prisma and GraphQL operations. Includ
62 lines (61 loc) • 4.56 kB
TypeScript
import { IGrouping } from './interfaces';
import { IEnumerable, IList, IOrderedEnumerable, IAsyncEnumerable } from '.';
export declare class Grouping<TKey, TElement> implements IGrouping<TKey, TElement> {
private key;
private _enumerable;
private elements;
constructor(key: TKey, elements: TElement[]);
get Key(): TKey;
[Symbol.iterator](): Iterator<TElement>;
ToArray(): TElement[];
ToList(): IList<TElement>;
Count(): number;
Count(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): number;
First(): TElement;
First(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): TElement;
FirstOrDefault(): TElement | undefined;
FirstOrDefault(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): TElement | undefined;
FirstOrDefault(defaultValue?: TElement): TElement | undefined;
FirstOrDefault(predicate?: (value: TElement, index?: number, list?: TElement[]) => boolean, defaultValue?: TElement): TElement | undefined;
Last(): TElement;
Last(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): TElement;
LastOrDefault(): TElement | undefined;
LastOrDefault(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): TElement | undefined;
LastOrDefault(defaultValue?: TElement): TElement | undefined;
LastOrDefault(predicate?: (value: TElement, index?: number, list?: TElement[]) => boolean, defaultValue?: TElement): TElement | undefined;
Single(): TElement;
Single(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): TElement;
SingleOrDefault(): TElement | undefined;
SingleOrDefault(defaultValue?: TElement): TElement | undefined;
ElementAt(index: number): TElement;
ElementAtOrDefault(index: number): TElement | undefined;
Where(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): IEnumerable<TElement>;
Select<TResult>(selector: (element: TElement, index: number) => TResult): IEnumerable<TResult>;
SelectMany<TResult>(selector: (element: TElement, index: number) => IEnumerable<TResult>): IEnumerable<TResult>;
OrderBy<TKey>(keySelector: (key: TElement) => TKey, comparer?: (a: TElement, b: TElement) => number): IOrderedEnumerable<TElement>;
OrderByDescending<TKey>(keySelector: (key: TElement) => TKey, comparer?: (a: TElement, b: TElement) => number): IOrderedEnumerable<TElement>;
Distinct(): IEnumerable<TElement>;
DistinctBy(keySelector: (key: TElement) => string | number): IEnumerable<TElement>;
Union(list: IEnumerable<TElement>): IEnumerable<TElement>;
Intersect(source: IEnumerable<TElement>): IEnumerable<TElement>;
Except(source: IEnumerable<TElement>): IEnumerable<TElement>;
Take(amount: number): IEnumerable<TElement>;
Skip(amount: number): IEnumerable<TElement>;
TakeWhile(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): IEnumerable<TElement>;
SkipWhile(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): IEnumerable<TElement>;
Aggregate<U>(accumulator: (accum: U, value: TElement, index: number, list?: TElement[]) => any, initialValue: U): any;
Sum(transform?: (value?: TElement, index?: number, list?: TElement[]) => number): number;
Average(transform?: (value?: TElement, index?: number, list?: TElement[]) => number): number;
Min(selector?: (element: TElement, index: number) => number): number;
Max(selector?: (element: TElement, index: number) => number): number;
Any(predicate?: (value: TElement, index?: number, list?: TElement[]) => boolean): boolean;
All(predicate: (value: TElement, index?: number, list?: TElement[]) => boolean): boolean;
Contains(element: TElement): boolean;
Join<U, R>(list: IEnumerable<U>, key1: (key: TElement) => any, key2: (key: U) => any, result: (first: TElement, second: U) => R): IEnumerable<R>;
GroupJoin<U, R>(list: IEnumerable<U>, key1: (k: TElement) => any, key2: (k: U) => any, result: (first: TElement, second: IEnumerable<U>) => R): IEnumerable<R>;
GroupBy<TResult = TElement>(grouper: (key: TElement) => string | number, mapper?: (element: TElement) => TResult): IEnumerable<IGrouping<string | number, TResult>>;
ToAsyncEnumerable(): IAsyncEnumerable<TElement>;
ForEach(action: (value?: TElement, index?: number, list?: TElement[]) => any): void;
Reverse(): IEnumerable<TElement>;
Concat(list: IEnumerable<TElement>): IEnumerable<TElement>;
}