refactor: cleanup worker related type definitions
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
index 2326d765c7ddd05f3021cb46d1d001ae2f4da0b9..4d47a5e3698bb96a5bad1e9f3093af396993be32 100644 (file)
@@ -1,62 +1,68 @@
-import type { WebSocket } from 'ws';
-
-import type { ChargingStationAutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
-import type { ChargingStationInfo } from './ChargingStationInfo';
-import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration';
-import type { ConnectorStatus } from './ConnectorStatus';
-import type { EvseStatus } from './Evse';
-import type { JsonObject } from './JsonType';
-import type { BootNotificationResponse } from './ocpp/Responses';
-import type { Statistics } from './Statistics';
-import { type WorkerData, type WorkerMessage, WorkerMessageEvents } from '../worker';
-
-interface ChargingStationWorkerOptions extends JsonObject {
-  elementStartDelay?: number;
+import type { WebSocket } from 'ws'
+
+import type { WorkerData } from '../worker/index.js'
+import type { ChargingStationAutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator.js'
+import { ChargingStationEvents } from './ChargingStationEvents.js'
+import type { ChargingStationInfo } from './ChargingStationInfo.js'
+import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration.js'
+import type { ConnectorStatus } from './ConnectorStatus.js'
+import type { EvseStatus } from './Evse.js'
+import type { JsonObject } from './JsonType.js'
+import type { BootNotificationResponse } from './ocpp/Responses.js'
+import type { Statistics } from './Statistics.js'
+
+export interface ChargingStationOptions extends JsonObject {
+  supervisionUrls?: string | string[]
+  persistentConfiguration?: boolean
+  autoStart?: boolean
+  autoRegister?: boolean
+  enableStatistics?: boolean
+  ocppStrictCompliance?: boolean
+  stopTransactionsOnStopped?: boolean
 }
 
 export interface ChargingStationWorkerData extends WorkerData {
-  index: number;
-  templateFile: string;
-  chargingStationWorkerOptions?: ChargingStationWorkerOptions;
+  index: number
+  templateFile: string
+  options?: ChargingStationOptions
 }
 
 export type EvseStatusWorkerType = Omit<EvseStatus, 'connectors'> & {
-  connectors?: ConnectorStatus[];
-};
+  connectors?: ConnectorStatus[]
+}
 
 export interface ChargingStationData extends WorkerData {
-  started: boolean;
-  stationInfo: ChargingStationInfo;
-  connectors: ConnectorStatus[];
-  evses: EvseStatusWorkerType[];
-  ocppConfiguration: ChargingStationOcppConfiguration;
+  started: boolean
+  stationInfo: ChargingStationInfo
+  connectors: ConnectorStatus[]
+  evses: EvseStatusWorkerType[]
+  ocppConfiguration: ChargingStationOcppConfiguration
+  supervisionUrl: string
   wsState?:
-    | typeof WebSocket.CONNECTING
-    | typeof WebSocket.OPEN
-    | typeof WebSocket.CLOSING
-    | typeof WebSocket.CLOSED;
-  bootNotificationResponse?: BootNotificationResponse;
-  automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration;
+  | typeof WebSocket.CONNECTING
+  | typeof WebSocket.OPEN
+  | typeof WebSocket.CLOSING
+  | typeof WebSocket.CLOSED
+  bootNotificationResponse?: BootNotificationResponse
+  automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration
 }
 
 enum ChargingStationMessageEvents {
-  started = 'started',
-  stopped = 'stopped',
-  updated = 'updated',
-  performanceStatistics = 'performanceStatistics',
+  performanceStatistics = 'performanceStatistics'
 }
 
 export const ChargingStationWorkerMessageEvents = {
-  ...WorkerMessageEvents,
-  ...ChargingStationMessageEvents,
-} as const;
-export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
-
-export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
-
-export type ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> = Omit<
-  WorkerMessage<T>,
-  'event'
-> & {
-  event: ChargingStationWorkerMessageEvents;
-};
+  ...ChargingStationEvents,
+  ...ChargingStationMessageEvents
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type ChargingStationWorkerMessageEvents =
+  | ChargingStationEvents
+  | ChargingStationMessageEvents
+
+export type ChargingStationWorkerMessageData = ChargingStationData | Statistics
+
+export interface ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> {
+  event: ChargingStationWorkerMessageEvents
+  data: T
+}