Properly handle NaN in Math.min usage
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / OCPPServiceUtils.ts
1 export class OCPPServiceUtils {
2 protected static getLimitFromSampledValueTemplateCustomValue(
3 value: string,
4 limit: number,
5 options: { limitationEnabled?: boolean; unitMultiplier?: number } = {
6 limitationEnabled: true,
7 unitMultiplier: 1,
8 }
9 ): number {
10 options.limitationEnabled = options?.limitationEnabled ?? true;
11 options.unitMultiplier = options?.unitMultiplier ?? 1;
12 const numberValue = isNaN(parseInt(value)) ? Infinity : parseInt(value);
13 return options?.limitationEnabled
14 ? Math.min(numberValue * options.unitMultiplier, limit)
15 : numberValue * options.unitMultiplier;
16 }
17 }