aboutsummaryrefslogtreecommitdiff
path: root/src/client/northstar/utils/Extensions.ts
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-09-18 19:16:00 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-09-18 19:16:00 -0400
commit5c49467e4513e260647a74f84042662d78ccdbc7 (patch)
treead9d9e68b5a0dd5e81eb4c78c450acd79bc30f39 /src/client/northstar/utils/Extensions.ts
parent30ec493a6dae644b0907f6ee6e86696c06aa11b4 (diff)
tweaks
Diffstat (limited to 'src/client/northstar/utils/Extensions.ts')
-rw-r--r--src/client/northstar/utils/Extensions.ts10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/client/northstar/utils/Extensions.ts b/src/client/northstar/utils/Extensions.ts
index ad3e06806..8254c775c 100644
--- a/src/client/northstar/utils/Extensions.ts
+++ b/src/client/northstar/utils/Extensions.ts
@@ -31,13 +31,19 @@ type BatchHandlerAsync<I> = (batch: I[], context: BatchContext) => Promise<void>
type BatchConverter<I, O> = BatchConverterSync<I, O> | BatchConverterAsync<I, O>;
type BatchHandler<I> = BatchHandlerSync<I> | BatchHandlerAsync<I>;
type FixedBatcher = { batchSize: number } | { batchCount: number, mode?: Mode };
+interface ExecutorResult<A> {
+ updated: A;
+ makeNextBatch: boolean;
+}
interface PredicateBatcher<I, A> {
- executor: (element: I, accumulator: A | undefined) => A | undefined;
+ executor: (element: I, accumulator: A) => ExecutorResult<A>;
initial: A;
+ persistAccumulator?: boolean;
}
interface PredicateBatcherAsync<I, A> {
- executor: (element: I, accumulator: A | undefined) => Promise<A | undefined>;
+ executor: (element: I, accumulator: A) => Promise<ExecutorResult<A>>;
initial: A;
+ persistAccumulator?: boolean;
}
type Batcher<I, A> = FixedBatcher | PredicateBatcher<I, A>;
type BatcherAsync<I, A> = Batcher<I, A> | PredicateBatcherAsync<I, A>;