refactor: cleanup utils export
[e-mobility-charging-stations-simulator.git] / src / utils / MessageChannelUtils.ts
index 3fcdbb20921f1135db9c1dd0c3f8024f6f90668a..4164c36bf11c96f18b8250cfd47be98bdeb897d5 100644 (file)
@@ -1,73 +1,86 @@
-import {
-  OutputFormat,
-  buildChargingStationAutomaticTransactionGeneratorConfiguration,
-  buildConnectorsStatus,
-  buildEvsesStatus,
-} from './ChargingStationConfigurationUtils';
-import type { ChargingStation } from '../charging-station';
+import type { ChargingStation } from '../charging-station/index.js'
 import {
   type ChargingStationData,
   type ChargingStationWorkerMessage,
   ChargingStationWorkerMessageEvents,
-  type Statistics,
-} from '../types';
+  type Statistics
+} from '../types/index.js'
+import {
+  buildChargingStationAutomaticTransactionGeneratorConfiguration,
+  buildConnectorsStatus,
+  buildEvsesStatus,
+  OutputFormat
+} from './ChargingStationConfigurationUtils.js'
 
-export class MessageChannelUtils {
-  private constructor() {
-    // This is intentional
+export const buildAddedMessage = (
+  chargingStation: ChargingStation
+): ChargingStationWorkerMessage<ChargingStationData> => {
+  return {
+    event: ChargingStationWorkerMessageEvents.added,
+    data: buildChargingStationDataPayload(chargingStation)
   }
+}
+
+export const buildDeletedMessage = (
+  chargingStation: ChargingStation
+): ChargingStationWorkerMessage<ChargingStationData> => {
+  return {
+    event: ChargingStationWorkerMessageEvents.deleted,
+    data: buildChargingStationDataPayload(chargingStation)
+  }
+}
 
-  public static buildStartedMessage(
-    chargingStation: ChargingStation
-  ): ChargingStationWorkerMessage<ChargingStationData> {
-    return {
-      id: ChargingStationWorkerMessageEvents.started,
-      data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
-    };
+export const buildStartedMessage = (
+  chargingStation: ChargingStation
+): ChargingStationWorkerMessage<ChargingStationData> => {
+  return {
+    event: 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 {
+    event: 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 {
+    event: 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 {
+    event: ChargingStationWorkerMessageEvents.performanceStatistics,
+    data: statistics
   }
+}
 
-  private static 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),
-      }),
-    };
+const buildChargingStationDataPayload = (chargingStation: ChargingStation): ChargingStationData => {
+  return {
+    started: chargingStation.started,
+    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+    stationInfo: chargingStation.stationInfo!,
+    connectors: buildConnectorsStatus(chargingStation),
+    evses: buildEvsesStatus(chargingStation, OutputFormat.worker),
+    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+    ocppConfiguration: chargingStation.ocppConfiguration!,
+    supervisionUrl: chargingStation.wsConnectionUrl.href,
+    wsState: chargingStation.wsConnection?.readyState,
+    bootNotificationResponse: chargingStation.bootNotificationResponse,
+    ...(chargingStation.automaticTransactionGenerator != null && {
+      automaticTransactionGenerator:
+        buildChargingStationAutomaticTransactionGeneratorConfiguration(chargingStation)
+    })
   }
 }