3 ChargingStationWorkerMessage
,
4 ChargingStationWorkerMessageEvents
,
5 } from
'../types/ChargingStationWorker';
6 import type Statistics from
'../types/Statistics';
7 import type ChargingStation from
'./ChargingStation';
9 export class MessageChannelUtils
{
10 private constructor() {
11 // This is intentional
14 public static buildStartedMessage(
15 chargingStation
: ChargingStation
16 ): ChargingStationWorkerMessage
<ChargingStationData
> {
18 id
: ChargingStationWorkerMessageEvents
.STARTED
,
19 data
: MessageChannelUtils
.buildChargingStationDataPayload(chargingStation
),
23 public static buildStoppedMessage(
24 chargingStation
: ChargingStation
25 ): ChargingStationWorkerMessage
<ChargingStationData
> {
27 id
: ChargingStationWorkerMessageEvents
.STOPPED
,
28 data
: MessageChannelUtils
.buildChargingStationDataPayload(chargingStation
),
32 public static buildUpdatedMessage(
33 chargingStation
: ChargingStation
34 ): ChargingStationWorkerMessage
<ChargingStationData
> {
36 id
: ChargingStationWorkerMessageEvents
.UPDATED
,
37 data
: MessageChannelUtils
.buildChargingStationDataPayload(chargingStation
),
41 public static buildPerformanceStatisticsMessage(
42 statistics
: Statistics
43 ): ChargingStationWorkerMessage
<Statistics
> {
45 id
: ChargingStationWorkerMessageEvents
.PERFORMANCE_STATISTICS
,
50 private static buildChargingStationDataPayload(
51 chargingStation
: ChargingStation
52 ): ChargingStationData
{
54 hashId
: chargingStation
.hashId
,
55 stationInfo
: chargingStation
.stationInfo
,
56 stopped
: chargingStation
.stopped
,
57 bootNotificationResponse
: chargingStation
.bootNotificationResponse
,
58 connectors
: [...chargingStation
.connectors
.values()].map(
59 // eslint-disable-next-line @typescript-eslint/no-unused-vars
60 ({ transactionSetInterval
, ...connectorStatusRest
}) => connectorStatusRest