Refine TS and linter configuration
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
1 import type ChargingStationInfo from './ChargingStationInfo';
2 import type { ConnectorStatus } from './ConnectorStatus';
3 import type { JsonObject } from './JsonType';
4 import type { BootNotificationResponse } from './ocpp/Responses';
5 import type Statistics from './Statistics';
6 import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker';
7
8 export interface ChargingStationWorkerOptions extends JsonObject {
9 elementStartDelay?: number;
10 }
11
12 export interface ChargingStationWorkerData extends WorkerData {
13 index: number;
14 templateFile: string;
15 chargingStationWorkerOptions?: ChargingStationWorkerOptions;
16 }
17
18 export interface ChargingStationData extends WorkerData {
19 hashId: string;
20 stationInfo: ChargingStationInfo;
21 stopped: boolean;
22 bootNotificationResponse: BootNotificationResponse;
23 connectors: ConnectorStatus[];
24 }
25
26 enum ChargingStationMessageEvents {
27 STARTED = 'started',
28 STOPPED = 'stopped',
29 UPDATED = 'updated',
30 PERFORMANCE_STATISTICS = 'performanceStatistics',
31 }
32
33 export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
34
35 export const ChargingStationWorkerMessageEvents = {
36 ...WorkerMessageEvents,
37 ...ChargingStationMessageEvents,
38 };
39
40 export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
41
42 export interface ChargingStationWorkerMessage<T extends WorkerData>
43 extends Omit<WorkerMessage<T>, 'id'> {
44 id: ChargingStationWorkerMessageEvents;
45 }