sync local repositories
add booleanish predicates enable custom inspection default to sequence of any when sequence type is unknown
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
import { AsyncSequence } from "../async/types.js";
|
||||
import { Collector } from "../collector/types.js";
|
||||
import { RandomOptions } from "../random/types.js";
|
||||
import { Predicate, Converter, FilterPredicate, Equater, BiConverter, Accumulator, Comparer, Action } from "../types.js";
|
||||
import { AnyPredicate, Converter, FilterPredicate, Equater, BiConverter, Accumulator, Comparer, Action } from "../types.js";
|
||||
|
||||
export type SequencePipeline<TElement, TResult> = (sequence: Sequence<TElement>) => TResult;
|
||||
|
||||
export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
iterator(): Iterator<TElement>;
|
||||
|
||||
apply<TResult>(pipeline: (sequence: Sequence<TElement>) => TResult): TResult;
|
||||
toJSON(): any;
|
||||
|
||||
count(predicate?: Predicate<TElement>): number;
|
||||
apply<TResult>(pipeline: SequencePipeline<TElement, TResult>): TResult;
|
||||
|
||||
count(predicate?: AnyPredicate<TElement>): number;
|
||||
nonEnumeratedCount(): number;
|
||||
fastCount(): number;
|
||||
maxCount(): number;
|
||||
@@ -17,7 +21,7 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
selectMany<TResult>(selector: Converter<TElement, Sequence<TResult>>): Sequence<TResult>;
|
||||
|
||||
where<TFiltered extends TElement>(predicate: FilterPredicate<TElement, TFiltered>): Sequence<TFiltered>;
|
||||
where(predicate: Predicate<TElement>): Sequence<TElement>;
|
||||
where(predicate: AnyPredicate<TElement>): Sequence<TElement>;
|
||||
|
||||
groupBy<TKey>(keySelector: Converter<TElement, TKey>, elementSelector?: undefined, keyComparer?: Equater<TKey>): Sequence<GroupedSequence<TKey, TElement>>;
|
||||
groupBy<TKey, TResult>(keySelector: Converter<TElement, TKey>, elementSelector: Converter<TElement, TResult>, keyComparer?: Equater<TKey>): Sequence<GroupedSequence<TKey, TResult>>;
|
||||
@@ -40,14 +44,14 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
|
||||
concat(...sequences: Sequence<TElement>[]): Sequence<TElement>;
|
||||
|
||||
first(predicate?: Predicate<TElement>): TElement;
|
||||
firstOrDefault(predicate?: Predicate<TElement>, def?: TElement): TElement | undefined;
|
||||
first(predicate?: AnyPredicate<TElement>): TElement;
|
||||
firstOrDefault(predicate?: AnyPredicate<TElement>, def?: TElement): TElement | undefined;
|
||||
|
||||
last(predicate?: Predicate<TElement>): TElement;
|
||||
lastOrDefault(predicate?: Predicate<TElement>, def?: TElement): TElement | undefined;
|
||||
last(predicate?: AnyPredicate<TElement>): TElement;
|
||||
lastOrDefault(predicate?: AnyPredicate<TElement>, def?: TElement): TElement | undefined;
|
||||
|
||||
single(predicate?: Predicate<TElement>): TElement;
|
||||
singleOrDefault(predicate?: Predicate<TElement>, def?: TElement): TElement | undefined;
|
||||
single(predicate?: AnyPredicate<TElement>): TElement;
|
||||
singleOrDefault(predicate?: AnyPredicate<TElement>, def?: TElement): TElement | undefined;
|
||||
|
||||
elementAt(index: number): TElement;
|
||||
elementAtOrDefault(index: number, def?: TElement): TElement | undefined;
|
||||
@@ -68,8 +72,8 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
orderDescending(comparer?: Comparer<TElement>): OrderedSequence<TElement>;
|
||||
orderByDescending<TBy>(selector: Converter<TElement, TBy>, comparer?: Comparer<TBy>): OrderedSequence<TElement>;
|
||||
|
||||
partition(equater?: Equater<TElement>): Sequence<TElement[]>;
|
||||
partitionBy<TBy>(selector: Converter<TElement, TBy>, equater?: Equater<TBy>): Sequence<TElement[]>;
|
||||
partition(equater?: Equater<TElement>): Sequence<Sequence<TElement>>;
|
||||
partitionBy<TBy>(selector: Converter<TElement, TBy>, equater?: Equater<TBy>): Sequence<Sequence<TElement>>;
|
||||
|
||||
distinct(equater?: Equater<TElement>): Sequence<TElement>;
|
||||
distinctBy<TBy>(selector: Converter<TElement, TBy>, equater?: Equater<TBy>): Sequence<TElement>;
|
||||
@@ -83,19 +87,19 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
intersect(sequence: Sequence<TElement>, equater?: Equater<TElement>): Sequence<TElement>;
|
||||
intersectBy<TBy>(sequence: Sequence<TElement>, selector: Converter<TElement, TBy>, equater?: Equater<TBy>): Sequence<TElement>;
|
||||
|
||||
all(predicate: Predicate<TElement>): boolean;
|
||||
any(predicate: Predicate<TElement>): boolean;
|
||||
all(predicate: AnyPredicate<TElement>): boolean;
|
||||
any(predicate: AnyPredicate<TElement>): boolean;
|
||||
any(): boolean;
|
||||
none(predicate: Predicate<TElement>): boolean;
|
||||
none(predicate: AnyPredicate<TElement>): boolean;
|
||||
none(): boolean;
|
||||
|
||||
skip(n: number): Sequence<TElement>;
|
||||
skipLast(n: number): Sequence<TElement>;
|
||||
skipWhile(condition: Predicate<TElement>): Sequence<TElement>;
|
||||
skipWhile(condition: AnyPredicate<TElement>): Sequence<TElement>;
|
||||
|
||||
take(n: number): Sequence<TElement>;
|
||||
takeLast(n: number): Sequence<TElement>;
|
||||
takeWhile(condition: Predicate<TElement>): Sequence<TElement>;
|
||||
takeWhile(condition: AnyPredicate<TElement>): Sequence<TElement>;
|
||||
|
||||
peek(action: Action<TElement>): Sequence<TElement>;
|
||||
|
||||
@@ -107,7 +111,8 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
|
||||
reversed(): Sequence<TElement>;
|
||||
|
||||
chunked(size: number): Sequence<Sequence<TElement>>;
|
||||
chunked(size: number, asArray?: false): Sequence<Sequence<TElement>>;
|
||||
chunked(size: number, asArray: true): Sequence<TElement[]>;
|
||||
|
||||
random(options?: RandomOptions<TElement>): TElement | undefined;
|
||||
|
||||
@@ -115,9 +120,12 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
||||
|
||||
awaited(): AsyncSequence<Awaited<TElement>>;
|
||||
|
||||
asArray(): TElement[];
|
||||
toArray(): TElement[];
|
||||
toMap<TKey>(keySelector: Converter<TElement, TKey>): Map<TKey, TElement>;
|
||||
toMap<TKey, TValue>(keySelector: Converter<TElement, TKey>, valueSelector: Converter<TElement, TValue>): Map<TKey, TValue>;
|
||||
toSet(): Set<TElement>;
|
||||
toObject<TKey extends PropertyKey>(keySelector: Converter<TElement, TKey>): Record<TKey, TElement>;
|
||||
toObject<TKey extends PropertyKey, TValue>(keySelector: Converter<TElement, TKey>, valueSelector: Converter<TElement, TValue>): Record<TKey, TValue>;
|
||||
|
||||
collect<TResult>(collector: Collector<TElement, any, TResult>): TResult;
|
||||
|
||||
Reference in New Issue
Block a user