diff options
Diffstat (limited to 'src/client/northstar/utils/Extensions.ts')
-rw-r--r-- | src/client/northstar/utils/Extensions.ts | 22 |
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) { |