refactor: refine error type in helper
[e-mobility-charging-stations-simulator.git] / src / utils / MessageChannelUtils.ts
index 4e353f4c6588e43beb6602cf2cb9d935c641a309..2bb43a961ccfa11686896321a52c02b5b0f74eb9 100644 (file)
@@ -1,3 +1,9 @@
+import {
+  OutputFormat,
+  buildChargingStationAutomaticTransactionGeneratorConfiguration,
+  buildConnectorsStatus,
+  buildEvsesStatus,
+} from './ChargingStationConfigurationUtils';
 import type { ChargingStation } from '../charging-station';
 import {
   type ChargingStationData,
@@ -6,78 +12,54 @@ import {
   type Statistics,
 } from '../types';
 
-export class MessageChannelUtils {
-  private constructor() {
-    // This is intentional
-  }
-
-  public static buildStartedMessage(
-    chargingStation: ChargingStation
-  ): ChargingStationWorkerMessage<ChargingStationData> {
-    return {
-      id: ChargingStationWorkerMessageEvents.started,
-      data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
-    };
-  }
+export const buildStartedMessage = (
+  chargingStation: ChargingStation
+): ChargingStationWorkerMessage<ChargingStationData> => {
+  return {
+    id: ChargingStationWorkerMessageEvents.started,
+    data: buildChargingStationDataPayload(chargingStation),
+  };
+};
 
-  public static buildStoppedMessage(
-    chargingStation: ChargingStation
-  ): ChargingStationWorkerMessage<ChargingStationData> {
-    return {
-      id: ChargingStationWorkerMessageEvents.stopped,
-      data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
-    };
-  }
+export const buildStoppedMessage = (
+  chargingStation: ChargingStation
+): ChargingStationWorkerMessage<ChargingStationData> => {
+  return {
+    id: ChargingStationWorkerMessageEvents.stopped,
+    data: buildChargingStationDataPayload(chargingStation),
+  };
+};
 
-  public static buildUpdatedMessage(
-    chargingStation: ChargingStation
-  ): ChargingStationWorkerMessage<ChargingStationData> {
-    return {
-      id: ChargingStationWorkerMessageEvents.updated,
-      data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
-    };
-  }
+export const buildUpdatedMessage = (
+  chargingStation: ChargingStation
+): ChargingStationWorkerMessage<ChargingStationData> => {
+  return {
+    id: ChargingStationWorkerMessageEvents.updated,
+    data: buildChargingStationDataPayload(chargingStation),
+  };
+};
 
-  public static buildPerformanceStatisticsMessage(
-    statistics: Statistics
-  ): ChargingStationWorkerMessage<Statistics> {
-    return {
-      id: ChargingStationWorkerMessageEvents.performanceStatistics,
-      data: statistics,
-    };
-  }
+export const buildPerformanceStatisticsMessage = (
+  statistics: Statistics
+): ChargingStationWorkerMessage<Statistics> => {
+  return {
+    id: ChargingStationWorkerMessageEvents.performanceStatistics,
+    data: statistics,
+  };
+};
 
-  private static buildChargingStationDataPayload(
-    chargingStation: ChargingStation
-  ): ChargingStationData {
-    return {
-      started: chargingStation.started,
-      stationInfo: chargingStation.stationInfo,
-      connectors: [...chargingStation.connectors.values()].map(
-        // eslint-disable-next-line @typescript-eslint/no-unused-vars
-        ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest
-      ),
-      evses: [...chargingStation.evses.values()].map((evseStatus) => {
-        return {
-          ...evseStatus,
-          connectors: [...evseStatus.connectors.values()].map(
-            // eslint-disable-next-line @typescript-eslint/no-unused-vars
-            ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest
-          ),
-        };
-      }),
-      ocppConfiguration: chargingStation.ocppConfiguration,
-      wsState: chargingStation?.wsConnection?.readyState,
-      bootNotificationResponse: chargingStation.bootNotificationResponse,
-      ...(chargingStation.automaticTransactionGenerator && {
-        automaticTransactionGenerator: {
-          automaticTransactionGenerator:
-            chargingStation.getAutomaticTransactionGeneratorConfiguration(),
-          automaticTransactionGeneratorStatuses: [
-            ...chargingStation.automaticTransactionGenerator.connectorsStatus.values(),
-          ],
-        },
-      }),
-    };
-  }
-}
+const buildChargingStationDataPayload = (chargingStation: ChargingStation): ChargingStationData => {
+  return {
+    started: chargingStation.started,
+    stationInfo: chargingStation.stationInfo,
+    connectors: buildConnectorsStatus(chargingStation),
+    evses: buildEvsesStatus(chargingStation, OutputFormat.worker),
+    ocppConfiguration: chargingStation.ocppConfiguration,
+    wsState: chargingStation?.wsConnection?.readyState,
+    bootNotificationResponse: chargingStation.bootNotificationResponse,
+    ...(chargingStation.automaticTransactionGenerator && {
+      automaticTransactionGenerator:
+        buildChargingStationAutomaticTransactionGeneratorConfiguration(chargingStation),
+    }),
+  };
+};