perf: use mnemonist CirculerBuffer
[e-mobility-charging-stations-simulator.git] / src / utils / MessageChannelUtils.ts
index 0306d60edd743e037f02221e9587065074541265..2fb952560b49e25b82cfd50fff951cbfe27bcccf 100644 (file)
@@ -1,11 +1,11 @@
+import { clone } from 'rambda'
+
 import type { ChargingStation } from '../charging-station/index.js'
 import {
   type ChargingStationData,
   type ChargingStationWorkerMessage,
   ChargingStationWorkerMessageEvents,
-  type InternalTemplateStatistics,
-  type Statistics,
-  type TemplateStatistics
+  type Statistics
 } from '../types/index.js'
 import {
   buildChargingStationAutomaticTransactionGeneratorConfiguration,
@@ -13,7 +13,6 @@ import {
   buildEvsesStatus,
   OutputFormat
 } from './ChargingStationConfigurationUtils.js'
-import { clone } from './Utils.js'
 
 export const buildAddedMessage = (
   chargingStation: ChargingStation
@@ -65,13 +64,12 @@ export const buildPerformanceStatisticsMessage = (
 ): ChargingStationWorkerMessage<Statistics> => {
   return {
     event: ChargingStationWorkerMessageEvents.performanceStatistics,
-    data: statistics
+    // FIXME: CircularBuffer is not structured-cloneable, rambda clone strips the whole statisticsData Map
+    data: clone(statistics)
   }
 }
 
-export const buildChargingStationDataPayload = (
-  chargingStation: ChargingStation
-): ChargingStationData => {
+const buildChargingStationDataPayload = (chargingStation: ChargingStation): ChargingStationData => {
   return {
     started: chargingStation.started,
     // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -89,13 +87,3 @@ export const buildChargingStationDataPayload = (
     })
   }
 }
-
-export const buildTemplateStatisticsPayload = (
-  map: Map<string, InternalTemplateStatistics>
-): Record<string, TemplateStatistics> => {
-  map = clone(map)
-  for (const value of map.values()) {
-    (value as unknown as TemplateStatistics).indexes = [...value.indexes]
-  }
-  return Object.fromEntries(map.entries() as unknown as Array<[string, TemplateStatistics]>)
-}