refactor(simulator): switch to named exports
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
CommitLineData
17e9e8ce
JB
1import type { WebSocket } from 'ws';
2
c72f6634 3import type { ChargingStationAutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
981ebfbe 4import type { ChargingStationInfo } from './ChargingStationInfo';
6c1761d4
JB
5import type { ConnectorStatus } from './ConnectorStatus';
6import type { JsonObject } from './JsonType';
7import type { BootNotificationResponse } from './ocpp/Responses';
8a36b1eb 8import type { Statistics } from './Statistics';
268a74bb 9import { type WorkerData, type WorkerMessage, WorkerMessageEvents } from '../worker';
d070d967 10
e3822d6f 11export interface ChargingStationWorkerOptions extends JsonObject {
d070d967
JB
12 elementStartDelay?: number;
13}
14
98dc07fa
JB
15export interface ChargingStationWorkerData extends WorkerData {
16 index: number;
17 templateFile: string;
d070d967 18 chargingStationWorkerOptions?: ChargingStationWorkerOptions;
98dc07fa
JB
19}
20
32de5a57 21export interface ChargingStationData extends WorkerData {
32de5a57 22 stationInfo: ChargingStationInfo;
452a82ca 23 started: boolean;
17e9e8ce
JB
24 wsState?:
25 | typeof WebSocket.CONNECTING
26 | typeof WebSocket.OPEN
27 | typeof WebSocket.CLOSING
28 | typeof WebSocket.CLOSED;
1895299d 29 bootNotificationResponse?: BootNotificationResponse;
32de5a57 30 connectors: ConnectorStatus[];
c72f6634 31 automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration;
32de5a57
LM
32}
33
34enum ChargingStationMessageEvents {
ee0f106b
JB
35 STARTED = 'started',
36 STOPPED = 'stopped',
32de5a57 37 UPDATED = 'updated',
e7aeea18 38 PERFORMANCE_STATISTICS = 'performanceStatistics',
98dc07fa
JB
39}
40
98dc07fa
JB
41export const ChargingStationWorkerMessageEvents = {
42 ...WorkerMessageEvents,
32de5a57 43 ...ChargingStationMessageEvents,
edd13439
JB
44} as const;
45export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
98dc07fa 46
53e5fd67
JB
47export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
48
c72f6634
JB
49export type ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> = Omit<
50 WorkerMessage<T>,
51 'id'
52> & {
98dc07fa 53 id: ChargingStationWorkerMessageEvents;
17e9e8ce 54};