+import { CircularBuffer } from 'mnemonist'
+
import type { ChargingStation } from '../charging-station/index.js'
import {
type ChargingStationData,
type ChargingStationWorkerMessage,
ChargingStationWorkerMessageEvents,
- type InternalTemplateStatistics,
type Statistics,
- type TemplateStatistics
+ type TimestampedData
} from '../types/index.js'
import {
buildChargingStationAutomaticTransactionGeneratorConfiguration,
buildEvsesStatus,
OutputFormat
} from './ChargingStationConfigurationUtils.js'
-import { clone } from './Utils.js'
export const buildAddedMessage = (
chargingStation: ChargingStation
export const buildPerformanceStatisticsMessage = (
statistics: Statistics
): ChargingStationWorkerMessage<Statistics> => {
+ const statisticsData = [...statistics.statisticsData].map(([key, value]) => {
+ if (value.measurementTimeSeries instanceof CircularBuffer) {
+ value.measurementTimeSeries = value.measurementTimeSeries.toArray() as TimestampedData[]
+ }
+ return [key, value]
+ })
return {
event: ChargingStationWorkerMessageEvents.performanceStatistics,
- data: statistics
+ data: {
+ id: statistics.id,
+ name: statistics.name,
+ uri: statistics.uri,
+ createdAt: statistics.createdAt,
+ updatedAt: statistics.updatedAt,
+ statisticsData
+ }
}
}
-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
})
}
}
-
-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]>)
-}