434a8f49b57439a127a56d568ec6f570765d9073
[e-mobility-charging-stations-simulator.git] / src / utils / CircularArray.ts
1 import Constants from './Constants';
2
3 export default class CircularArray<T> extends Array<T> {
4 public size: number;
5
6 constructor(size: number = Constants.MAXIMUM_MEASUREMENTS_NUMBER) {
7 super();
8 this.size = size;
9 }
10
11 push(...items: T[]): number {
12 if (this.length + items.length > this.size) {
13 super.splice(0, (this.length + items.length) - this.size);
14 }
15 return super.push(...items);
16 }
17
18 unshift(...items: T[]): number {
19 if (this.length + items.length > this.size) {
20 super.splice(this.size - items.length, (this.length + items.length) - this.size);
21 }
22 return super.unshift(...items);
23 }
24 }