diff options
| author | Sam Wilkins <samwilkins333@gmail.com> | 2019-09-13 17:11:25 -0400 |
|---|---|---|
| committer | Sam Wilkins <samwilkins333@gmail.com> | 2019-09-13 17:11:25 -0400 |
| commit | 3c2b04f16ccfae103e2f3acdd852e337c5f974e1 (patch) | |
| tree | 1cf71c5cb93c121963c3b55e5a89c85c6cfadd9d /src/client/northstar/utils | |
| parent | f110a6cf1cac724a85e1001491e1bddedb8d1ebc (diff) | |
added batching, generically
Diffstat (limited to 'src/client/northstar/utils')
| -rw-r--r-- | src/client/northstar/utils/Extensions.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/client/northstar/utils/Extensions.ts b/src/client/northstar/utils/Extensions.ts index ab9384f1f..720f4a062 100644 --- a/src/client/northstar/utils/Extensions.ts +++ b/src/client/northstar/utils/Extensions.ts @@ -5,6 +5,8 @@ interface String { hasNewline(): boolean; } +const extensions = require(".././/.//../util/UtilExtensions"); + String.prototype.ReplaceAll = function (toReplace: string, replacement: string): string { var target = this; return target.split(toReplace).join(replacement); @@ -18,6 +20,31 @@ String.prototype.Truncate = function (length: number, replacement: string): Stri return target; }; +interface Action<T> { + handler: (batch: T[]) => any; + interval?: number; +} + +interface BatchParameters<T> { + size: number; + action?: Action<T>; +} + +interface Array<T> { + batch(parameters: BatchParameters<T>): Promise<T[][]>; + lastElement(): T; +} + +Array.prototype.batch = extensions.Batch; + +Array.prototype.lastElement = function <T>() { + if (!this.length) { + return undefined; + } + const last: T = this[this.length - 1]; + return last; +}; + interface Math { log10(val: number): number; } |
