build(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
... / ...
CommitLineData
1import type { WebSocket } from 'ws'
2
3import type { ChargingStationAutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator.js'
4import { ChargingStationEvents } from './ChargingStationEvents.js'
5import type { ChargingStationInfo } from './ChargingStationInfo.js'
6import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration.js'
7import type { ConnectorStatus } from './ConnectorStatus.js'
8import type { EvseStatus } from './Evse.js'
9import type { JsonObject } from './JsonType.js'
10import type { BootNotificationResponse } from './ocpp/Responses.js'
11import type { Statistics } from './Statistics.js'
12import { type WorkerData, type WorkerMessage, WorkerMessageEvents } from '../worker/index.js'
13
14interface ChargingStationWorkerOptions extends JsonObject {
15 elementStartDelay?: number
16}
17
18export interface ChargingStationWorkerData extends WorkerData {
19 index: number
20 templateFile: string
21 chargingStationWorkerOptions?: ChargingStationWorkerOptions
22}
23
24export type EvseStatusWorkerType = Omit<EvseStatus, 'connectors'> & {
25 connectors?: ConnectorStatus[]
26}
27
28export interface ChargingStationData extends WorkerData {
29 started: boolean
30 stationInfo: ChargingStationInfo
31 connectors: ConnectorStatus[]
32 evses: EvseStatusWorkerType[]
33 ocppConfiguration: ChargingStationOcppConfiguration
34 wsState?:
35 | typeof WebSocket.CONNECTING
36 | typeof WebSocket.OPEN
37 | typeof WebSocket.CLOSING
38 | typeof WebSocket.CLOSED
39 bootNotificationResponse?: BootNotificationResponse
40 automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration
41}
42
43enum ChargingStationMessageEvents {
44 performanceStatistics = 'performanceStatistics'
45}
46
47export const ChargingStationWorkerMessageEvents = {
48 ...WorkerMessageEvents,
49 ...ChargingStationEvents,
50 ...ChargingStationMessageEvents
51} as const
52// eslint-disable-next-line @typescript-eslint/no-redeclare
53export type ChargingStationWorkerMessageEvents =
54 | WorkerMessageEvents
55 | ChargingStationEvents
56 | ChargingStationMessageEvents
57
58export type ChargingStationWorkerMessageData = ChargingStationData | Statistics
59
60export type ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> = Omit<
61WorkerMessage<T>,
62'event'
63> & {
64 event: ChargingStationWorkerMessageEvents
65}