Commit | Line | Data |
---|---|---|
66a7748d | 1 | import type { ChargingStation } from '../charging-station/index.js' |
179ed367 JB |
2 | import type { |
3 | ChargingStationAutomaticTransactionGeneratorConfiguration, | |
4 | ConnectorStatus, | |
5 | EvseStatusConfiguration, | |
66a7748d JB |
6 | EvseStatusWorkerType |
7 | } from '../types/index.js' | |
179ed367 JB |
8 | |
9 | export const buildChargingStationAutomaticTransactionGeneratorConfiguration = ( | |
66a7748d | 10 | chargingStation: ChargingStation |
179ed367 JB |
11 | ): ChargingStationAutomaticTransactionGeneratorConfiguration => { |
12 | return { | |
13 | automaticTransactionGenerator: chargingStation.getAutomaticTransactionGeneratorConfiguration(), | |
aa63c9b7 | 14 | ...(chargingStation.automaticTransactionGenerator?.connectorsStatus != null && { |
179ed367 | 15 | automaticTransactionGeneratorStatuses: [ |
aa63c9b7 | 16 | ...chargingStation.automaticTransactionGenerator.connectorsStatus.values() |
66a7748d JB |
17 | ] |
18 | }) | |
19 | } | |
20 | } | |
179ed367 JB |
21 | |
22 | export const buildConnectorsStatus = (chargingStation: ChargingStation): ConnectorStatus[] => { | |
23 | return [...chargingStation.connectors.values()].map( | |
22427713 | 24 | ({ transactionSetInterval, ...connectorStatus }) => connectorStatus |
66a7748d JB |
25 | ) |
26 | } | |
179ed367 JB |
27 | |
28 | export const enum OutputFormat { | |
29 | configuration = 'configuration', | |
a223d9be | 30 | worker = 'worker' |
179ed367 JB |
31 | } |
32 | ||
33 | export const buildEvsesStatus = ( | |
34 | chargingStation: ChargingStation, | |
66a7748d JB |
35 | outputFormat: OutputFormat = OutputFormat.configuration |
36 | ): Array<EvseStatusWorkerType | EvseStatusConfiguration> => { | |
37 | // eslint-disable-next-line array-callback-return | |
a974c8e4 | 38 | return [...chargingStation.evses.values()].map(evseStatus => { |
179ed367 | 39 | const connectorsStatus = [...evseStatus.connectors.values()].map( |
22427713 | 40 | ({ transactionSetInterval, ...connectorStatus }) => connectorStatus |
66a7748d JB |
41 | ) |
42 | let status: EvseStatusConfiguration | |
09989bb8 JB |
43 | switch (outputFormat) { |
44 | case OutputFormat.worker: | |
45 | return { | |
46 | ...evseStatus, | |
66a7748d JB |
47 | connectors: connectorsStatus |
48 | } | |
09989bb8 JB |
49 | case OutputFormat.configuration: |
50 | status = { | |
51 | ...evseStatus, | |
66a7748d JB |
52 | connectorsStatus |
53 | } | |
54 | delete (status as EvseStatusWorkerType).connectors | |
55 | return status | |
179ed367 | 56 | } |
66a7748d JB |
57 | }) |
58 | } |