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
, ...connectorStatus
}) => connectorStatus
28 export enum OutputFormat
{
29 configuration
= 'configuration',
33 export const buildEvsesStatus
= (
34 chargingStation
: ChargingStation
,
35 outputFormat
: OutputFormat
= OutputFormat
.configuration
36 ): (EvseStatusConfiguration
| EvseStatusWorkerType
)[] => {
37 // eslint-disable-next-line array-callback-return
38 return [...chargingStation
.evses
.values()].map(evseStatus
=> {
39 const connectorsStatus
= [...evseStatus
.connectors
.values()].map(
40 ({ transactionSetInterval
, ...connectorStatus
}) => connectorStatus
42 let status: EvseStatusConfiguration
43 switch (outputFormat
) {
44 case OutputFormat
.configuration
:
49 delete (status as EvseStatusWorkerType
).connectors
51 case OutputFormat
.worker
:
54 connectors
: connectorsStatus
,