1
0
This commit is contained in:
2024-10-14 07:38:23 +02:00
parent c2196e11c9
commit 9af08e71fc
9 changed files with 193 additions and 309 deletions

View File

@@ -1,6 +1,6 @@
import { mathRandom } from "../random/index.js";
import { RandomGenerator } from "../random/types.js";
import { BigIntRangeSequence, ConcatSequence, SequenceMarker, FunctionSequence, GeneratorSequence, RangeSequence, RepeatSequence, RepeatForeverSequence, WrappedArrayLike, WrappedIterable, WrappedMap, WrappedObject, WrappedSet, WrappedReadonlyArray, EMPTY } from "./impl.js";
import { BigIntRangeSequence, ConcatSequence, SequenceMarker, FunctionSequence, GeneratorSequence, RangeSequence, RepeatSequence, RepeatForeverSequence, WrappedArrayLike, WrappedIterable, WrappedMap, WrappedObject, WrappedSet, WrappedArray, EMPTY, ZippedSequence } from "./impl.js";
import { Sequence } from "./types.js";
export function wrap<T = any>(iterable: Iterable<T>): Sequence<T> {
@@ -36,7 +36,7 @@ export function single<T>(obj: T): Sequence<T> {
}
export function array<T = any>(array: ReadonlyArray<T>): Sequence<T> {
return new WrappedReadonlyArray(array);
return new WrappedArray(array);
}
export function arrayLike<T = any>(arrayLike: ArrayLike<T>): Sequence<T> {
@@ -142,6 +142,10 @@ export function concat<T>(...sequences: Sequence<T>[]): Sequence<T> {
return new ConcatSequence(sequences);
}
export function zip<T>(first: Sequence<T>, second: Sequence<T>): Sequence<[T, T]> {
return new ZippedSequence(first, second);
}
export function isSequence<T = any>(obj: any): obj is Sequence<T> {
return obj instanceof SequenceMarker;
}