build(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / utils / MessageChannelUtils.ts
CommitLineData
179ed367
JB
1import {
2 OutputFormat,
3 buildChargingStationAutomaticTransactionGeneratorConfiguration,
4 buildConnectorsStatus,
66a7748d
JB
5 buildEvsesStatus
6} from './ChargingStationConfigurationUtils.js'
7import type { ChargingStation } from '../charging-station/index.js'
32de5a57 8import {
e0b0ee21
JB
9 type ChargingStationData,
10 type ChargingStationWorkerMessage,
32de5a57 11 ChargingStationWorkerMessageEvents,
66a7748d
JB
12 type Statistics
13} from '../types/index.js'
32de5a57 14
c8faabc8 15export const buildStartedMessage = (
66a7748d 16 chargingStation: ChargingStation
c8faabc8
JB
17): ChargingStationWorkerMessage<ChargingStationData> => {
18 return {
8cc482a9 19 event: ChargingStationWorkerMessageEvents.started,
66a7748d
JB
20 data: buildChargingStationDataPayload(chargingStation)
21 }
22}
32de5a57 23
c8faabc8 24export const buildStoppedMessage = (
66a7748d 25 chargingStation: ChargingStation
c8faabc8
JB
26): ChargingStationWorkerMessage<ChargingStationData> => {
27 return {
8cc482a9 28 event: ChargingStationWorkerMessageEvents.stopped,
66a7748d
JB
29 data: buildChargingStationDataPayload(chargingStation)
30 }
31}
32de5a57 32
c8faabc8 33export const buildUpdatedMessage = (
66a7748d 34 chargingStation: ChargingStation
c8faabc8
JB
35): ChargingStationWorkerMessage<ChargingStationData> => {
36 return {
8cc482a9 37 event: ChargingStationWorkerMessageEvents.updated,
66a7748d
JB
38 data: buildChargingStationDataPayload(chargingStation)
39 }
40}
32de5a57 41
c8faabc8 42export const buildPerformanceStatisticsMessage = (
66a7748d 43 statistics: Statistics
c8faabc8
JB
44): ChargingStationWorkerMessage<Statistics> => {
45 return {
8cc482a9 46 event: ChargingStationWorkerMessageEvents.performanceStatistics,
66a7748d
JB
47 data: statistics
48 }
49}
32de5a57 50
c8faabc8
JB
51const buildChargingStationDataPayload = (chargingStation: ChargingStation): ChargingStationData => {
52 return {
53 started: chargingStation.started,
54 stationInfo: chargingStation.stationInfo,
55 connectors: buildConnectorsStatus(chargingStation),
56 evses: buildEvsesStatus(chargingStation, OutputFormat.worker),
66a7748d 57 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
e1d9a0f4 58 ocppConfiguration: chargingStation.ocppConfiguration!,
c8faabc8
JB
59 wsState: chargingStation?.wsConnection?.readyState,
60 bootNotificationResponse: chargingStation.bootNotificationResponse,
66a7748d 61 ...(chargingStation.automaticTransactionGenerator != null && {
c8faabc8 62 automaticTransactionGenerator:
66a7748d
JB
63 buildChargingStationAutomaticTransactionGeneratorConfiguration(chargingStation)
64 })
65 }
66}