fix: fix circular dependencies in types
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 28 Jul 2023 23:14:53 +0000 (01:14 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 28 Jul 2023 23:14:53 +0000 (01:14 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/types/index.ts
src/types/ocpp/1.6/Responses.ts
src/types/ocpp/2.0/Common.ts
src/types/ocpp/2.0/Responses.ts
src/types/ocpp/Common.ts [new file with mode: 0644]
src/types/ocpp/Requests.ts
src/types/ocpp/Responses.ts

index a5ab58caa1a3165199ea9e91793f55a14e998d7c..f65e4caef879da22ef3f40abe9ed378f782e440f 100644 (file)
@@ -17,6 +17,7 @@ export {
   IdTagDistribution,
   type Status,
 } from './AutomaticTransactionGenerator';
+export { type GenericResponse, GenericStatus, RegistrationStatusEnumType } from './ocpp/Common';
 export {
   AvailabilityType,
   type BootNotificationRequest,
@@ -51,11 +52,8 @@ export {
   type DiagnosticsStatusNotificationResponse,
   type ErrorResponse,
   type FirmwareStatusNotificationResponse,
-  GenericStatus,
-  type GenericResponse,
   type HeartbeatResponse,
   type MeterValuesResponse,
-  RegistrationStatusEnumType,
   type Response,
   type ResponseHandler,
   type StatusNotificationResponse,
index 9cd96b2473dbfccccbe7a7772b34c5f72b57184a..2e5e285b2ef7378ec2a1033b2df071bee0dfdfca 100644 (file)
@@ -1,8 +1,8 @@
 import type { OCPP16ChargingSchedule } from './ChargingProfile';
 import type { EmptyObject } from '../../EmptyObject';
 import type { JsonObject } from '../../JsonType';
+import type { GenericStatus, RegistrationStatusEnumType } from '../Common';
 import type { OCPPConfigurationKey } from '../Configuration';
-import { GenericStatus, type RegistrationStatusEnumType } from '../Responses';
 
 export interface OCPP16HeartbeatResponse extends JsonObject {
   currentTime: Date;
index 511cce005f191b147d2f7b39f14c3ec45c988896..e9226961476457e705bb86e782d8e44fc6d9aaa4 100644 (file)
@@ -1,5 +1,5 @@
 import type { JsonObject } from '../../JsonType';
-import type { GenericStatus } from '../Responses';
+import type { GenericStatus } from '../Common';
 
 export enum DataEnumType {
   // eslint-disable-next-line id-blacklist
index ab6357a9b5fbce29fb5c55b08b7eba2cc6f6b66f..a4ecdadd9f33a3db0bd9c5890b1bd1442829d063 100644 (file)
@@ -6,7 +6,7 @@ import type {
 import type { OCPP20SetVariableResultType } from './Variables';
 import type { EmptyObject } from '../../EmptyObject';
 import type { JsonObject } from '../../JsonType';
-import type { RegistrationStatusEnumType } from '../Responses';
+import type { RegistrationStatusEnumType } from '../Common';
 
 export type OCPP20BootNotificationResponse = {
   currentTime: Date;
diff --git a/src/types/ocpp/Common.ts b/src/types/ocpp/Common.ts
new file mode 100644 (file)
index 0000000..a4422b1
--- /dev/null
@@ -0,0 +1,16 @@
+import type { JsonObject } from '../JsonType';
+
+export enum GenericStatus {
+  Accepted = 'Accepted',
+  Rejected = 'Rejected',
+}
+
+export interface GenericResponse extends JsonObject {
+  status: GenericStatus;
+}
+
+export enum RegistrationStatusEnumType {
+  ACCEPTED = 'Accepted',
+  PENDING = 'Pending',
+  REJECTED = 'Rejected',
+}
index a2407476fd90d24eb6d971afd66ff664390c1e50..4cb32e27479ba8828424823846a7c6ecabf38e95 100644 (file)
@@ -49,6 +49,11 @@ export type IncomingRequestCommand = OCPP16IncomingRequestCommand | OCPP20Incomi
 
 export type IncomingRequest = [MessageType.CALL_MESSAGE, string, IncomingRequestCommand, JsonType];
 
+export type IncomingRequestHandler = (
+  chargingStation: ChargingStation,
+  commandPayload: JsonType,
+) => JsonType | Promise<JsonType>;
+
 export type ResponseCallback = (payload: JsonType, requestPayload: JsonType) => void;
 
 export type ErrorCallback = (error: OCPPError, requestStatistic?: boolean) => void;
@@ -81,11 +86,6 @@ export type DiagnosticsStatusNotificationRequest = OCPP16DiagnosticsStatusNotifi
 
 export type FirmwareStatusNotificationRequest = OCPP16FirmwareStatusNotificationRequest;
 
-export type IncomingRequestHandler = (
-  chargingStation: ChargingStation,
-  commandPayload: JsonType,
-) => JsonType | Promise<JsonType>;
-
 export const AvailabilityType = {
   ...OCPP16AvailabilityType,
   ...OperationalStatusEnumType,
index 2cd2f36902e49a6bd130d22a86fc7d53b424fcaa..8107e274416d749b64c5bd8f70c4ab29517dd25b 100644 (file)
@@ -16,10 +16,11 @@ import {
   OCPP16UnlockStatus,
 } from './1.6/Responses';
 import type { OCPP20BootNotificationResponse, OCPP20ClearCacheResponse } from './2.0/Responses';
+import { type GenericResponse, GenericStatus } from './Common';
 import type { ErrorType } from './ErrorType';
 import type { MessageType } from './MessageType';
 import type { ChargingStation } from '../../charging-station';
-import type { JsonObject, JsonType } from '../JsonType';
+import type { JsonType } from '../JsonType';
 
 export type Response = [MessageType.CALL_RESULT_MESSAGE, string, JsonType];
 
@@ -49,21 +50,6 @@ export type DiagnosticsStatusNotificationResponse = OCPP16DiagnosticsStatusNotif
 
 export type FirmwareStatusNotificationResponse = OCPP16FirmwareStatusNotificationResponse;
 
-export enum GenericStatus {
-  Accepted = 'Accepted',
-  Rejected = 'Rejected',
-}
-
-export interface GenericResponse extends JsonObject {
-  status: GenericStatus;
-}
-
-export enum RegistrationStatusEnumType {
-  ACCEPTED = 'Accepted',
-  PENDING = 'Pending',
-  REJECTED = 'Rejected',
-}
-
 export const AvailabilityStatus = {
   ...OCPP16AvailabilityStatus,
 } as const;
@@ -102,11 +88,11 @@ export type DataTransferStatus = OCPP16DataTransferStatus;
 export type ReservationStatus = OCPP16ReservationStatus;
 export const ReservationStatus = {
   ...OCPP16ReservationStatus,
-};
+} as const;
 
 export type CancelReservationStatus = GenericStatus;
 export const CancelReservationStatus = {
   ...GenericStatus,
-};
+} as const;
 
 export type CancelReservationResponse = GenericResponse;