aboutsummaryrefslogtreecommitdiff
path: root/src/client/northstar/utils/Extensions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/northstar/utils/Extensions.ts')
-rw-r--r--src/client/northstar/utils/Extensions.ts22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/client/northstar/utils/Extensions.ts b/src/client/northstar/utils/Extensions.ts
index c866d1bc3..00c1e113c 100644
--- a/src/client/northstar/utils/Extensions.ts
+++ b/src/client/northstar/utils/Extensions.ts
@@ -20,17 +20,31 @@ String.prototype.Truncate = function (length: number, replacement: string): Stri
return target;
};
-
-type BatchHandler<I, O> = (batch: I[]) => O[] | Promise<O[]>;
+type BatchConverterSync<I, O> = (batch: I[]) => O[];
+type BatchHandlerSync<I> = (batch: I[]) => void;
+type BatchConverterAsync<I, O> = (batch: I[]) => Promise<O[]>;
+type BatchHandlerAsync<I> = (batch: I[]) => Promise<void>;
+type BatchConverter<I, O> = BatchConverterSync<I, O> | BatchConverterAsync<I, O>;
+type BatchHandler<I> = BatchHandlerSync<I> | BatchHandlerAsync<I>;
interface Array<T> {
batch(batchSize: number): T[][];
- batchAction<O>(batchSize: number, handler: BatchHandler<T, O>, interval?: number): Promise<O[]>;
+ executeInBatches(batchSize: number, handler: BatchHandlerSync<T>): void;
+ convertInBatches<O>(batchSize: number, handler: BatchConverterSync<T, O>): O[];
+ executeInBatchesAsync(batchSize: number, handler: BatchHandler<T>): Promise<void>;
+ convertInBatchesAsync<O>(batchSize: number, handler: BatchConverter<T, O>): Promise<O[]>;
+ executeInBatchesAtInterval(batchSize: number, handler: BatchHandler<T>, interval: number): Promise<void>;
+ convertInBatchesAtInterval<O>(batchSize: number, handler: BatchConverter<T, O>, interval: number): Promise<O[]>;
lastElement(): T;
}
Array.prototype.batch = extensions.Batch;
-Array.prototype.batchAction = extensions.BatchAction;
+Array.prototype.executeInBatches = extensions.ExecuteInBatches;
+Array.prototype.convertInBatches = extensions.ConvertInBatches;
+Array.prototype.executeInBatchesAsync = extensions.ExecuteInBatchesAsync;
+Array.prototype.convertInBatchesAsync = extensions.ConvertInBatchesAsync;
+Array.prototype.executeInBatchesAtInterval = extensions.ExecuteInBatchesAtInterval;
+Array.prototype.convertInBatchesAtInterval = extensions.ConvertInBatchesAtInterval;
Array.prototype.lastElement = function <T>() {
if (!this.length) {