correctly initialize and expose empty sequences
This commit is contained in:
@@ -1072,7 +1072,7 @@ abstract class BaseOrderedAsyncSequence<TElement> extends BaseAsyncSequence<TEle
|
||||
}
|
||||
}
|
||||
|
||||
export class EmptyAsyncSequence<T> extends BaseAsyncSequence<T> {
|
||||
class EmptyAsyncSequence<T> extends BaseAsyncSequence<T> {
|
||||
override async nonEnumeratedCount() {
|
||||
return 0;
|
||||
}
|
||||
@@ -1080,6 +1080,8 @@ export class EmptyAsyncSequence<T> extends BaseAsyncSequence<T> {
|
||||
override async *iterator() { }
|
||||
}
|
||||
|
||||
export const EMPTY = new EmptyAsyncSequence<any>();
|
||||
|
||||
export class RangeAsyncSequence extends BaseAsyncSequence<number> {
|
||||
readonly #min: number;
|
||||
readonly #max: number;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { wrap as wrapSync } from "../sync/index.js";
|
||||
import { Sequence } from "../sync/types.js";
|
||||
import { MaybeAsyncGenerator, MaybeAsyncIterable, MaybeAsyncSequence, MaybePromiseLike } from "../types.js";
|
||||
import { MaybeAsyncGenerator, MaybeAsyncIterable, MaybePromiseLike } from "../types.js";
|
||||
import { isAsyncIterable } from "../utils.js";
|
||||
import { WrappedSequence, WrappedAsyncIterable, EmptyAsyncSequence, WrappedObjectAsync, WrappedArrayAsync, WrappedArrayLikeAsync, FunctionAsyncSequence, GeneratorAsyncSequence, RangeAsyncSequence, RepeatForeverAsyncSequence, RepeatAsyncSequence, AsyncSequenceMarker } from "./impl.js";
|
||||
import { WrappedSequence, WrappedAsyncIterable, WrappedObjectAsync, WrappedArrayAsync, WrappedArrayLikeAsync, FunctionAsyncSequence, GeneratorAsyncSequence, RangeAsyncSequence, RepeatForeverAsyncSequence, RepeatAsyncSequence, AsyncSequenceMarker, EMPTY } from "./impl.js";
|
||||
import { AsyncSequence } from "./types.js";
|
||||
|
||||
export function asAsync<T>(sequence: Sequence<MaybePromiseLike<T>>): AsyncSequence<T> {
|
||||
@@ -25,8 +25,6 @@ export function sequence<T>(iterable: AsyncIterable<MaybePromiseLike<T>>): Async
|
||||
return new WrappedAsyncIterable(iterable);
|
||||
}
|
||||
|
||||
export const EMPTY = new EmptyAsyncSequence<any>();
|
||||
|
||||
export function empty<T>(): AsyncSequence<T> {
|
||||
return EMPTY;
|
||||
}
|
||||
|
||||
@@ -1065,7 +1065,7 @@ export abstract class BaseOrderedSequence<TElement> extends BaseSequence<TElemen
|
||||
}
|
||||
}
|
||||
|
||||
export class EmptySequence<T> extends BaseSequence<T> {
|
||||
class EmptySequence<T> extends BaseSequence<T> {
|
||||
override nonEnumeratedCount() {
|
||||
return 0;
|
||||
}
|
||||
@@ -1073,6 +1073,8 @@ export class EmptySequence<T> extends BaseSequence<T> {
|
||||
override *iterator() { }
|
||||
}
|
||||
|
||||
export const EMPTY = new EmptySequence<any>();
|
||||
|
||||
export class RangeSequence extends BaseSequence<number> {
|
||||
readonly #min: number;
|
||||
readonly #max: number;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { mathRandom } from "../random/index.js";
|
||||
import { RandomGenerator } from "../random/types.js";
|
||||
import { BigIntRangeSequence, ConcatSequence, EmptySequence, SequenceMarker, FunctionSequence, GeneratorSequence, RangeSequence, RepeatSequence, RepeatForeverSequence, WrappedArray, WrappedArrayLike, WrappedIterable, WrappedMap, WrappedObject, WrappedSet } from "./impl.js";
|
||||
import { BigIntRangeSequence, ConcatSequence, SequenceMarker, FunctionSequence, GeneratorSequence, RangeSequence, RepeatSequence, RepeatForeverSequence, WrappedArray, WrappedArrayLike, WrappedIterable, WrappedMap, WrappedObject, WrappedSet, EMPTY } from "./impl.js";
|
||||
import { Sequence } from "./types.js";
|
||||
|
||||
export function wrap<T>(iterable: Iterable<T>): Sequence<T> {
|
||||
@@ -27,8 +27,6 @@ export function sequence<T>(iterable: Iterable<T>): Sequence<T> {
|
||||
return new WrappedIterable(iterable);
|
||||
}
|
||||
|
||||
export const EMPTY = new EmptySequence<any>();
|
||||
|
||||
export function empty<T>(): Sequence<T> {
|
||||
return EMPTY;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user