-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 { 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'
+import { type WorkerData, type WorkerMessage, WorkerMessageEvents } from '../worker/index.js'
+
+export interface ChargingStationOptions extends JsonObject {
+ 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;
+ ...ChargingStationEvents,
+ ...ChargingStationMessageEvents
+} as const
+// eslint-disable-next-line @typescript-eslint/no-redeclare
+export type ChargingStationWorkerMessageEvents =
+ | WorkerMessageEvents
+ | ChargingStationEvents
+ | ChargingStationMessageEvents
-export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
+export interface ChargingStationWorkerEventError extends WorkerData {
+ event: WorkerMessageEvents
+ name: string
+ message: string
+ stack?: string
+}
+
+export type ChargingStationWorkerMessageData =
+ | ChargingStationData
+ | Statistics
+ | ChargingStationWorkerEventError
export type ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> = Omit<
- WorkerMessage<T>,
- 'id'
+WorkerMessage<T>,
+'event'
> & {
- id: ChargingStationWorkerMessageEvents;
-};
+ event: ChargingStationWorkerMessageEvents
+}