1
0

sync local repositories

add booleanish predicates
enable custom inspection
default to sequence of any when sequence type is unknown
This commit is contained in:
2024-08-15 00:40:45 +02:00
parent aedad87c8e
commit 0b03475f66
7 changed files with 543 additions and 196 deletions

View File

@@ -1,9 +1,9 @@
import { mathRandom } from "../random/index.js";
import { RandomGenerator } from "../random/types.js";
import { BigIntRangeSequence, ConcatSequence, SequenceMarker, FunctionSequence, GeneratorSequence, RangeSequence, RepeatSequence, RepeatForeverSequence, WrappedArray, WrappedArrayLike, WrappedIterable, WrappedMap, WrappedObject, WrappedSet, EMPTY } from "./impl.js";
import { BigIntRangeSequence, ConcatSequence, SequenceMarker, FunctionSequence, GeneratorSequence, RangeSequence, RepeatSequence, RepeatForeverSequence, WrappedArrayLike, WrappedIterable, WrappedMap, WrappedObject, WrappedSet, WrappedReadonlyArray, EMPTY } from "./impl.js";
import { Sequence } from "./types.js";
export function wrap<T>(iterable: Iterable<T>): Sequence<T> {
export function wrap<T = any>(iterable: Iterable<T>): Sequence<T> {
if (isSequence<T>(iterable)) {
return iterable;
}
@@ -23,11 +23,11 @@ export function wrap<T>(iterable: Iterable<T>): Sequence<T> {
return sequence(iterable);
}
export function sequence<T>(iterable: Iterable<T>): Sequence<T> {
export function sequence<T = any>(iterable: Iterable<T>): Sequence<T> {
return new WrappedIterable(iterable);
}
export function empty<T>(): Sequence<T> {
export function empty<T = any>(): Sequence<T> {
return EMPTY;
}
@@ -35,19 +35,19 @@ export function single<T>(obj: T): Sequence<T> {
return new WrappedObject(obj);
}
export function array<T>(array: T[]): Sequence<T> {
return new WrappedArray(array);
export function array<T = any>(array: ReadonlyArray<T>): Sequence<T> {
return new WrappedReadonlyArray(array);
}
export function arrayLike<T>(arrayLike: ArrayLike<T>): Sequence<T> {
export function arrayLike<T = any>(arrayLike: ArrayLike<T>): Sequence<T> {
return new WrappedArrayLike(arrayLike);
}
export function set<T>(set: Set<T>): Sequence<T> {
export function set<T>(set: ReadonlySet<T>): Sequence<T> {
return new WrappedSet(set);
}
export function map<K, V>(map: Map<K, V>): Sequence<[K, V]> {
export function map<K, V>(map: ReadonlyMap<K, V>): Sequence<[K, V]> {
return new WrappedMap(map);
}