Empty string handling fixes
[e-mobility-charging-stations-simulator.git] / src / charging-station / ChargingStationUtils.ts
index ed12aa4acf697bf01c351e9d4cc0857c77c763e4..e73f4d50670628cd61dfc82a2604ef7f9ae2d9fe 100644 (file)
@@ -44,14 +44,12 @@ export class ChargingStationUtils {
     // In case of multiple instances: add instance index to charging station id
     const instanceIndex = process.env.CF_INSTANCE_INDEX ?? 0;
     const idSuffix = stationTemplate.nameSuffix ?? '';
-    const idStr = '000000000' + index.toString();
+    const idStr = `000000000${index.toString()}`;
     return stationTemplate?.fixedName
       ? stationTemplate.baseName
-      : stationTemplate.baseName +
-          '-' +
-          instanceIndex.toString() +
-          idStr.substring(idStr.length - 4) +
-          idSuffix;
+      : `${stationTemplate.baseName}-${instanceIndex.toString()}${idStr.substring(
+          idStr.length - 4
+        )}${idSuffix}`;
   }
 
   public static getHashId(index: number, stationTemplate: ChargingStationTemplate): string {
@@ -80,8 +78,10 @@ export class ChargingStationUtils {
     return crypto
       .createHash(Constants.DEFAULT_HASH_ALGORITHM)
       .update(
-        JSON.stringify(chargingStationInfo) +
-          ChargingStationUtils.getChargingStationId(index, stationTemplate)
+        `${JSON.stringify(chargingStationInfo)}${ChargingStationUtils.getChargingStationId(
+          index,
+          stationTemplate
+        )}`
       )
       .digest('hex');
   }
@@ -210,7 +210,7 @@ export class ChargingStationUtils {
     if (!Utils.isUndefined(template[key])) {
       logger.warn(
         `${logPrefix} Deprecated template key '${key}' usage in file '${templateFile}'${
-          logMsgToAppend && '. ' + logMsgToAppend
+          !Utils.isEmptyString(logMsgToAppend) && `. ${logMsgToAppend}`
         }`
       );
     }
@@ -269,14 +269,14 @@ export class ChargingStationUtils {
         })
       : '';
     stationInfo.chargePointSerialNumber =
-      stationTemplate?.chargePointSerialNumberPrefix &&
-      stationTemplate.chargePointSerialNumberPrefix + serialNumberSuffix;
+      !Utils.isEmptyString(stationTemplate?.chargePointSerialNumberPrefix) &&
+      `${stationTemplate.chargePointSerialNumberPrefix}${serialNumberSuffix}`;
     stationInfo.chargeBoxSerialNumber =
-      stationTemplate?.chargeBoxSerialNumberPrefix &&
-      stationTemplate.chargeBoxSerialNumberPrefix + serialNumberSuffix;
+      !Utils.isEmptyString(stationTemplate?.chargeBoxSerialNumberPrefix) &&
+      `${stationTemplate.chargeBoxSerialNumberPrefix}${serialNumberSuffix}`;
     stationInfo.meterSerialNumber =
-      stationTemplate?.meterSerialNumberPrefix &&
-      stationTemplate.meterSerialNumberPrefix + serialNumberSuffix;
+      !Utils.isEmptyString(stationTemplate?.meterSerialNumberPrefix) &&
+      `${stationTemplate.meterSerialNumberPrefix}${serialNumberSuffix}`;
   }
 
   public static propagateSerialNumber(
@@ -325,9 +325,9 @@ export class ChargingStationUtils {
     // Get charging profiles for connector and sort by stack level
     chargingProfiles = chargingStation
       .getConnectorStatus(connectorId)
-      .chargingProfiles.sort((a, b) => b.stackLevel - a.stackLevel);
+      ?.chargingProfiles?.sort((a, b) => b.stackLevel - a.stackLevel);
     // Get profiles on connector 0
-    if (chargingStation.getConnectorStatus(0).chargingProfiles) {
+    if (chargingStation.getConnectorStatus(0)?.chargingProfiles) {
       chargingProfiles.push(
         ...chargingStation
           .getConnectorStatus(0)
@@ -340,8 +340,8 @@ export class ChargingStationUtils {
         chargingStation.logPrefix()
       );
       if (!Utils.isNullOrUndefined(result)) {
-        limit = result.limit;
-        matchingChargingProfile = result.matchingChargingProfile;
+        limit = result?.limit;
+        matchingChargingProfile = result?.matchingChargingProfile;
         switch (chargingStation.getCurrentOutType()) {
           case CurrentType.AC:
             limit =