perf: 'await' on UI request handlers only when necessary
[e-mobility-charging-stations-simulator.git] / src / charging-station / ui-server / ui-services / UIService001.ts
index 11925ee48a26789997e54818d5b9f03e27f14c21..674f89857404d1c34eb29de90e449d8f983382ea 100644 (file)
@@ -1,90 +1,15 @@
-import {
-  ProcedureName,
-  ProtocolRequestHandler,
-  ProtocolVersion,
-  RequestPayload,
-} from '../../../types/UIProtocol';
-import {
-  BroadcastChannelProcedureName,
-  BroadcastChannelRequestPayload,
-} from '../../../types/WorkerBroadcastChannel';
-import type { AbstractUIServer } from '../AbstractUIServer';
-import AbstractUIService from './AbstractUIService';
-
-export default class UIService001 extends AbstractUIService {
-  constructor(uiServer: AbstractUIServer) {
-    super(uiServer, ProtocolVersion['0.0.1']);
-    this.requestHandlers.set(
-      ProcedureName.START_TRANSACTION,
-      this.handleStartTransaction.bind(this) as ProtocolRequestHandler
-    );
-    this.requestHandlers.set(
-      ProcedureName.STOP_TRANSACTION,
-      this.handleStopTransaction.bind(this) as ProtocolRequestHandler
-    );
-    this.requestHandlers.set(
-      ProcedureName.START_CHARGING_STATION,
-      this.handleStartChargingStation.bind(this) as ProtocolRequestHandler
-    );
-    this.requestHandlers.set(
-      ProcedureName.STOP_CHARGING_STATION,
-      this.handleStopChargingStation.bind(this) as ProtocolRequestHandler
-    );
-    this.requestHandlers.set(
-      ProcedureName.OPEN_CONNECTION,
-      this.handleOpenConnection.bind(this) as ProtocolRequestHandler
-    );
-    this.requestHandlers.set(
-      ProcedureName.CLOSE_CONNECTION,
-      this.handleCloseConnection.bind(this) as ProtocolRequestHandler
-    );
-  }
-
-  private handleStartTransaction(uuid: string, payload: RequestPayload): void {
-    this.uiServiceWorkerBroadcastChannel.sendRequest([
-      uuid,
-      BroadcastChannelProcedureName.START_TRANSACTION,
-      payload as BroadcastChannelRequestPayload,
-    ]);
-  }
-
-  private handleStopTransaction(uuid: string, payload: RequestPayload): void {
-    this.uiServiceWorkerBroadcastChannel.sendRequest([
-      uuid,
-      BroadcastChannelProcedureName.STOP_TRANSACTION,
-      payload as BroadcastChannelRequestPayload,
-    ]);
-  }
-
-  private handleStartChargingStation(uuid: string, payload: RequestPayload): void {
-    this.uiServiceWorkerBroadcastChannel.sendRequest([
-      uuid,
-      BroadcastChannelProcedureName.START_CHARGING_STATION,
-      payload as BroadcastChannelRequestPayload,
-    ]);
-  }
-
-  private handleStopChargingStation(uuid: string, payload: RequestPayload): void {
-    this.uiServiceWorkerBroadcastChannel.sendRequest([
-      uuid,
-      BroadcastChannelProcedureName.STOP_CHARGING_STATION,
-      payload as BroadcastChannelRequestPayload,
-    ]);
-  }
-
-  private handleOpenConnection(uuid: string, payload: RequestPayload): void {
-    this.uiServiceWorkerBroadcastChannel.sendRequest([
-      uuid,
-      BroadcastChannelProcedureName.OPEN_CONNECTION,
-      payload as BroadcastChannelRequestPayload,
-    ]);
-  }
-
-  private handleCloseConnection(uuid: string, payload: RequestPayload): void {
-    this.uiServiceWorkerBroadcastChannel.sendRequest([
-      uuid,
-      BroadcastChannelProcedureName.CLOSE_CONNECTION,
-      payload as BroadcastChannelRequestPayload,
-    ]);
+import { AbstractUIService } from './AbstractUIService.js'
+import { type ProtocolRequestHandler, ProtocolVersion } from '../../../types/index.js'
+import type { AbstractUIServer } from '../AbstractUIServer.js'
+
+export class UIService001 extends AbstractUIService {
+  constructor (uiServer: AbstractUIServer) {
+    super(uiServer, ProtocolVersion['0.0.1'])
+    for (const procedureName of AbstractUIService.ProcedureNameToBroadCastChannelProcedureNameMapping.keys()) {
+      this.requestHandlers.set(
+        procedureName,
+        this.handleProtocolRequest.bind(this) as ProtocolRequestHandler
+      )
+    }
   }
 }