X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futils%2FCircularArray.ts;h=f87ddd458bf5e67e82ee90d88932a349769f224b;hb=e30379693404ad623548b856606a689ff92c4c84;hp=5fdeeaad1f7e57c2dae60d0c6fe976d623c942bd;hpb=551e477c2cc2461de8dcc2b263a35c0c50240bbf;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/CircularArray.ts b/src/utils/CircularArray.ts index 5fdeeaad..f87ddd45 100644 --- a/src/utils/CircularArray.ts +++ b/src/utils/CircularArray.ts @@ -1,9 +1,9 @@ // Copyright Jerome Benoit. 2021-2023. All Rights Reserved. -export const DEFAULT_CIRCULAR_ARRAY_SIZE = Number.MAX_SAFE_INTEGER; +const DEFAULT_CIRCULAR_ARRAY_SIZE = 1024; /** - * Array with a maximum length shifting items when full. + * Array with a maximum length and shifting items when full. */ export class CircularArray extends Array { public size: number; @@ -39,7 +39,7 @@ export class CircularArray extends Array { if (concatenatedCircularArray.length > concatenatedCircularArray.size) { concatenatedCircularArray.splice( 0, - concatenatedCircularArray.length - concatenatedCircularArray.size + concatenatedCircularArray.length - concatenatedCircularArray.size, ); } return concatenatedCircularArray; @@ -79,9 +79,12 @@ export class CircularArray extends Array { return this.length === this.size; } - private checkSize(size: number) { + private checkSize(size: number): void { + if (!Number.isSafeInteger(size)) { + throw new TypeError(`Invalid circular array size: ${size} is not a safe integer`); + } if (size < 0) { - throw new RangeError('Invalid circular array size'); + throw new RangeError(`Invalid circular array size: ${size} < 0`); } } }