1 import type { ChargingStation
} from
'../charging-station/index.js'
3 ChargingStationAutomaticTransactionGeneratorConfiguration
,
5 EvseStatusConfiguration
,
7 } from
'../types/index.js'
9 export const buildChargingStationAutomaticTransactionGeneratorConfiguration
= (
10 chargingStation
: ChargingStation
11 ): ChargingStationAutomaticTransactionGeneratorConfiguration
=> {
13 automaticTransactionGenerator
: chargingStation
.getAutomaticTransactionGeneratorConfiguration(),
14 ...(chargingStation
.automaticTransactionGenerator
?.connectorsStatus
!= null && {
15 automaticTransactionGeneratorStatuses
: [
16 ...chargingStation
.automaticTransactionGenerator
.connectorsStatus
.values()
22 export const buildConnectorsStatus
= (chargingStation
: ChargingStation
): ConnectorStatus
[] => {
23 return [...chargingStation
.connectors
.values()].map(
24 ({ transactionSetInterval
, ...connectorStatusRest
}) => connectorStatusRest
28 export const enum OutputFormat
{
29 configuration
= 'configuration',
33 export const buildEvsesStatus
= (
34 chargingStation
: ChargingStation
,
35 outputFormat
: OutputFormat
= OutputFormat
.configuration
36 ): Array<EvseStatusWorkerType
| EvseStatusConfiguration
> => {
37 // eslint-disable-next-line array-callback-return
38 return [...chargingStation
.evses
.values()].map((evseStatus
) => {
39 const connectorsStatus
= [...evseStatus
.connectors
.values()].map(
40 ({ transactionSetInterval
, ...connectorStatusRest
}) => connectorStatusRest
42 let status: EvseStatusConfiguration
43 switch (outputFormat
) {
44 case OutputFormat
.worker
:
47 connectors
: connectorsStatus
49 case OutputFormat
.configuration
:
54 delete (status as EvseStatusWorkerType
).connectors