1
0

make chunked return sequence of sequences

This commit is contained in:
2024-05-18 13:39:26 +02:00
parent 719cb660e6
commit 8c6693ad98
4 changed files with 11 additions and 11 deletions

View File

@@ -620,7 +620,7 @@ export abstract class BaseAsyncSequence<TElement> extends AsyncSequenceMarker im
return new ReversedAsyncSequence<TElement>(this);
}
chunked(size: number): AsyncSequence<TElement[]> {
chunked(size: number): AsyncSequence<AsyncSequence<TElement>> {
if (size <= 0) {
throw new Error("Chunk size must be positive.");
}
@@ -967,7 +967,7 @@ export class DelegatedAsyncSequence<TElement> extends AsyncSequenceMarker implem
return this.#sequence.reversed();
}
chunked(size: number): AsyncSequence<TElement[]> {
chunked(size: number): AsyncSequence<AsyncSequence<TElement>> {
return this.#sequence.chunked(size);
}
@@ -2010,7 +2010,7 @@ class GroupByAsyncSequence<TElement, TKey, TResult> extends BaseAsyncSequence<Gr
}
}
class ChunkedAsyncSequence<T> extends BaseAsyncSequence<T[]> {
class ChunkedAsyncSequence<T> extends BaseAsyncSequence<AsyncSequence<T>> {
readonly #sequence: AsyncSequence<T>;
readonly #size: number;
@@ -2033,13 +2033,13 @@ class ChunkedAsyncSequence<T> extends BaseAsyncSequence<T[]> {
chunk.push(obj);
if (chunk.length === this.#size) {
yield chunk;
yield array(chunk);
chunk = [];
}
}
if (chunk.length > 0) {
yield chunk;
yield array(chunk);
}
}
}

View File

@@ -105,7 +105,7 @@ export interface AsyncSequence<TElement> extends AsyncIterable<TElement> {
reversed(): AsyncSequence<TElement>;
chunked(size: number): AsyncSequence<TElement[]>;
chunked(size: number): AsyncSequence<AsyncSequence<TElement>>;
random(options?: AsyncRandomOptions<TElement>): Promise<TElement | undefined>;

View File

@@ -612,7 +612,7 @@ export abstract class BaseSequence<TElement> extends SequenceMarker implements S
return new ReversedSequence<TElement>(this);
}
chunked(size: number): Sequence<TElement[]> {
chunked(size: number): Sequence<Sequence<TElement>> {
if (size <= 0) {
throw new Error("Chunk size must be positive.");
}
@@ -2245,7 +2245,7 @@ class GroupBySequence<TElement, TKey, TResult> extends BaseSequence<GroupedSeque
}
}
class ChunkedSequence<T> extends BaseSequence<T[]> {
class ChunkedSequence<T> extends BaseSequence<Sequence<T>> {
readonly #sequence: Sequence<T>;
readonly #size: number;
@@ -2272,13 +2272,13 @@ class ChunkedSequence<T> extends BaseSequence<T[]> {
chunk.push(obj);
if (chunk.length === this.#size) {
yield chunk;
yield array(chunk);
chunk = [];
}
}
if (chunk.length > 0) {
yield chunk;
yield array(chunk);
}
}
}

View File

@@ -107,7 +107,7 @@ export interface Sequence<TElement> extends Iterable<TElement> {
reversed(): Sequence<TElement>;
chunked(size: number): Sequence<TElement[]>;
chunked(size: number): Sequence<Sequence<TElement>>;
random(options?: RandomOptions<TElement>): TElement | undefined;