X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FCircularArray.ts;h=319b6924e4494b6ca83c55ee5d4cc576a27f5d67;hb=1b0147cae119f5b519cffd8cdf2a733a3df20b11;hp=434a8f49b57439a127a56d568ec6f570765d9073;hpb=b6633b4c519a0aa579ed9c0653fa78fe99f6487b;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/CircularArray.ts b/src/utils/CircularArray.ts index 434a8f49..319b6924 100644 --- a/src/utils/CircularArray.ts +++ b/src/utils/CircularArray.ts @@ -1,11 +1,11 @@ -import Constants from './Constants'; export default class CircularArray extends Array { public size: number; + private readonly MAXIMUM_CIRCULAR_ARRAY_SIZE = 2000; - constructor(size: number = Constants.MAXIMUM_MEASUREMENTS_NUMBER) { + constructor(size?: number) { super(); - this.size = size; + this.size = size && size <= this.MAXIMUM_CIRCULAR_ARRAY_SIZE ? size : this.MAXIMUM_CIRCULAR_ARRAY_SIZE; } push(...items: T[]): number { @@ -21,4 +21,16 @@ export default class CircularArray extends Array { } return super.unshift(...items); } + + concat(...items: (T|ConcatArray)[]): T[] { + if (this.length + items.length > this.size) { + super.splice(0, (this.length + items.length) - this.size); + } + return super.concat(items as T[]); + } + + splice(start: number, deleteCount?: number, ...items: T[]): T[] { + this.push(...items); + return super.splice(start, deleteCount); + } }