refactor: type casting cleanups
[e-mobility-charging-stations-simulator.git] / src / utils / ChargingStationConfigurationUtils.ts
index 3549fa7b634efaafc893def41ef74a68be149444..0e32c7e629b28bfa3ade6eba052272130877a8ea 100644 (file)
@@ -1,59 +1,58 @@
-import { Utils } from './Utils';
-import type { ChargingStation } from '../charging-station';
+import type { ChargingStation } from '../charging-station/index.js'
 import type {
   ChargingStationAutomaticTransactionGeneratorConfiguration,
   ConnectorStatus,
   EvseStatusConfiguration,
-} from '../types';
+  EvseStatusWorkerType
+} from '../types/index.js'
 
 export const buildChargingStationAutomaticTransactionGeneratorConfiguration = (
   chargingStation: ChargingStation
 ): ChargingStationAutomaticTransactionGeneratorConfiguration => {
   return {
     automaticTransactionGenerator: chargingStation.getAutomaticTransactionGeneratorConfiguration(),
-    ...(!Utils.isNullOrUndefined(
-      chargingStation.automaticTransactionGenerator?.connectorsStatus
-    ) && {
+    ...(chargingStation.automaticTransactionGenerator?.connectorsStatus != null && {
       automaticTransactionGeneratorStatuses: [
-        ...chargingStation.automaticTransactionGenerator.connectorsStatus.values(),
-      ],
-    }),
-  };
-};
+        ...chargingStation.automaticTransactionGenerator.connectorsStatus.values()
+      ]
+    })
+  }
+}
 
 export const buildConnectorsStatus = (chargingStation: ChargingStation): ConnectorStatus[] => {
   return [...chargingStation.connectors.values()].map(
-    // eslint-disable-next-line @typescript-eslint/no-unused-vars
     ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest
-  );
-};
+  )
+}
 
 export const enum OutputFormat {
   configuration = 'configuration',
-  ipc = 'ipc',
+  worker = 'worker'
 }
 
 export const buildEvsesStatus = (
   chargingStation: ChargingStation,
   outputFormat: OutputFormat = OutputFormat.configuration
-): EvseStatusConfiguration[] => {
-  return [...chargingStation.evses.values()].map((evseStatus) => {
+): Array<EvseStatusWorkerType | EvseStatusConfiguration> => {
+  // eslint-disable-next-line array-callback-return
+  return [...chargingStation.evses.values()].map(evseStatus => {
     const connectorsStatus = [...evseStatus.connectors.values()].map(
-      // eslint-disable-next-line @typescript-eslint/no-unused-vars
       ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest
-    );
-    if (outputFormat === OutputFormat.ipc) {
-      return {
-        ...evseStatus,
-        connectors: connectorsStatus,
-      };
-    } else if (outputFormat === OutputFormat.configuration) {
-      const status = {
-        ...evseStatus,
-        connectorsStatus,
-      };
-      delete status.connectors;
-      return status;
+    )
+    let status: EvseStatusConfiguration
+    switch (outputFormat) {
+      case OutputFormat.worker:
+        return {
+          ...evseStatus,
+          connectors: connectorsStatus
+        }
+      case OutputFormat.configuration:
+        status = {
+          ...evseStatus,
+          connectorsStatus
+        }
+        delete (status as EvseStatusWorkerType).connectors
+        return status
     }
-  });
-};
+  })
+}