build(deps): apply updates
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
... / ...
CommitLineData
1import type { WebSocket } from 'ws';
2
3import type { ChargingStationAutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
4import { ChargingStationEvents } from './ChargingStationEvents';
5import type { ChargingStationInfo } from './ChargingStationInfo';
6import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration';
7import type { ConnectorStatus } from './ConnectorStatus';
8import type { EvseStatus } from './Evse';
9import type { JsonObject } from './JsonType';
10import type { BootNotificationResponse } from './ocpp/Responses';
11import type { Statistics } from './Statistics';
12import { type WorkerData, type WorkerMessage, WorkerMessageEvents } from '../worker';
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;
52export type ChargingStationWorkerMessageEvents =
53 | WorkerMessageEvents
54 | ChargingStationEvents
55 | ChargingStationMessageEvents;
56
57export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
58
59export type ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> = Omit<
60 WorkerMessage<T>,
61 'event'
62> & {
63 event: ChargingStationWorkerMessageEvents;
64};