1 import { isNullOrUndefined
} from
'./Utils.js'
2 import type { ChargingStation
} from
'../charging-station/index.js'
4 ChargingStationAutomaticTransactionGeneratorConfiguration
,
6 EvseStatusConfiguration
,
8 } from
'../types/index.js'
10 export const buildChargingStationAutomaticTransactionGeneratorConfiguration
= (
11 chargingStation
: ChargingStation
12 ): ChargingStationAutomaticTransactionGeneratorConfiguration
=> {
14 automaticTransactionGenerator
: chargingStation
.getAutomaticTransactionGeneratorConfiguration(),
15 ...(!isNullOrUndefined(chargingStation
.automaticTransactionGenerator
?.connectorsStatus
) && {
16 automaticTransactionGeneratorStatuses
: [
17 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
18 ...chargingStation
.automaticTransactionGenerator
!.connectorsStatus
.values()
24 export const buildConnectorsStatus
= (chargingStation
: ChargingStation
): ConnectorStatus
[] => {
25 return [...chargingStation
.connectors
.values()].map(
26 ({ transactionSetInterval
, ...connectorStatusRest
}) => connectorStatusRest
30 export const enum OutputFormat
{
31 configuration
= 'configuration',
35 export const buildEvsesStatus
= (
36 chargingStation
: ChargingStation
,
37 outputFormat
: OutputFormat
= OutputFormat
.configuration
38 ): Array<EvseStatusWorkerType
| EvseStatusConfiguration
> => {
39 // eslint-disable-next-line array-callback-return
40 return [...chargingStation
.evses
.values()].map((evseStatus
) => {
41 const connectorsStatus
= [...evseStatus
.connectors
.values()].map(
42 ({ transactionSetInterval
, ...connectorStatusRest
}) => connectorStatusRest
44 let status: EvseStatusConfiguration
45 switch (outputFormat
) {
46 case OutputFormat
.worker
:
49 connectors
: connectorsStatus
51 case OutputFormat
.configuration
:
56 delete (status as EvseStatusWorkerType
).connectors