make chunked return sequence of sequences
This commit is contained in:
@@ -620,7 +620,7 @@ export abstract class BaseAsyncSequence<TElement> extends AsyncSequenceMarker im
|
|||||||
return new ReversedAsyncSequence<TElement>(this);
|
return new ReversedAsyncSequence<TElement>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
chunked(size: number): AsyncSequence<TElement[]> {
|
chunked(size: number): AsyncSequence<AsyncSequence<TElement>> {
|
||||||
if (size <= 0) {
|
if (size <= 0) {
|
||||||
throw new Error("Chunk size must be positive.");
|
throw new Error("Chunk size must be positive.");
|
||||||
}
|
}
|
||||||
@@ -967,7 +967,7 @@ export class DelegatedAsyncSequence<TElement> extends AsyncSequenceMarker implem
|
|||||||
return this.#sequence.reversed();
|
return this.#sequence.reversed();
|
||||||
}
|
}
|
||||||
|
|
||||||
chunked(size: number): AsyncSequence<TElement[]> {
|
chunked(size: number): AsyncSequence<AsyncSequence<TElement>> {
|
||||||
return this.#sequence.chunked(size);
|
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 #sequence: AsyncSequence<T>;
|
||||||
readonly #size: number;
|
readonly #size: number;
|
||||||
|
|
||||||
@@ -2033,13 +2033,13 @@ class ChunkedAsyncSequence<T> extends BaseAsyncSequence<T[]> {
|
|||||||
chunk.push(obj);
|
chunk.push(obj);
|
||||||
|
|
||||||
if (chunk.length === this.#size) {
|
if (chunk.length === this.#size) {
|
||||||
yield chunk;
|
yield array(chunk);
|
||||||
chunk = [];
|
chunk = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chunk.length > 0) {
|
if (chunk.length > 0) {
|
||||||
yield chunk;
|
yield array(chunk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ export interface AsyncSequence<TElement> extends AsyncIterable<TElement> {
|
|||||||
|
|
||||||
reversed(): AsyncSequence<TElement>;
|
reversed(): AsyncSequence<TElement>;
|
||||||
|
|
||||||
chunked(size: number): AsyncSequence<TElement[]>;
|
chunked(size: number): AsyncSequence<AsyncSequence<TElement>>;
|
||||||
|
|
||||||
random(options?: AsyncRandomOptions<TElement>): Promise<TElement | undefined>;
|
random(options?: AsyncRandomOptions<TElement>): Promise<TElement | undefined>;
|
||||||
|
|
||||||
|
|||||||
@@ -612,7 +612,7 @@ export abstract class BaseSequence<TElement> extends SequenceMarker implements S
|
|||||||
return new ReversedSequence<TElement>(this);
|
return new ReversedSequence<TElement>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
chunked(size: number): Sequence<TElement[]> {
|
chunked(size: number): Sequence<Sequence<TElement>> {
|
||||||
if (size <= 0) {
|
if (size <= 0) {
|
||||||
throw new Error("Chunk size must be positive.");
|
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 #sequence: Sequence<T>;
|
||||||
readonly #size: number;
|
readonly #size: number;
|
||||||
|
|
||||||
@@ -2272,13 +2272,13 @@ class ChunkedSequence<T> extends BaseSequence<T[]> {
|
|||||||
chunk.push(obj);
|
chunk.push(obj);
|
||||||
|
|
||||||
if (chunk.length === this.#size) {
|
if (chunk.length === this.#size) {
|
||||||
yield chunk;
|
yield array(chunk);
|
||||||
chunk = [];
|
chunk = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chunk.length > 0) {
|
if (chunk.length > 0) {
|
||||||
yield chunk;
|
yield array(chunk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export interface Sequence<TElement> extends Iterable<TElement> {
|
|||||||
|
|
||||||
reversed(): Sequence<TElement>;
|
reversed(): Sequence<TElement>;
|
||||||
|
|
||||||
chunked(size: number): Sequence<TElement[]>;
|
chunked(size: number): Sequence<Sequence<TElement>>;
|
||||||
|
|
||||||
random(options?: RandomOptions<TElement>): TElement | undefined;
|
random(options?: RandomOptions<TElement>): TElement | undefined;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user