refactor(simulator): add type shorcuts for OCPP configuration keys
authorJérôme Benoit <jerome.benoit@sap.com>
Wed, 15 Feb 2023 11:31:53 +0000 (12:31 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Wed, 15 Feb 2023 11:31:53 +0000 (12:31 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/ChargingStation.ts
src/charging-station/ChargingStationConfigurationUtils.ts
src/types/index.ts
src/types/ocpp/1.6/Configuration.ts
src/types/ocpp/1.6/Requests.ts
src/types/ocpp/2.0/Variables.ts
src/types/ocpp/Configuration.ts

index 5d7acc669f89e82aa86d62a14319b38be1f4b3d7..27935e12b809308fe87b00a781c896a9046b49df 100644 (file)
@@ -83,7 +83,7 @@ import {
   type StopTransactionResponse,
   SupervisionUrlDistribution,
   SupportedFeatureProfiles,
-  VendorDefaultParametersKey,
+  VendorParametersKey,
   type WSError,
   WebSocketCloseEventStatusCode,
   type WsOptions,
@@ -803,7 +803,7 @@ export class ChargingStation {
   }
 
   private getSupervisionUrlOcppKey(): string {
-    return this.stationInfo.supervisionUrlOcppKey ?? VendorDefaultParametersKey.ConnectionUrl;
+    return this.stationInfo.supervisionUrlOcppKey ?? VendorParametersKey.ConnectionUrl;
   }
 
   private getTemplateFromFile(): ChargingStationTemplate | undefined {
index 6b7cfa23bc425aa8b551aac765cb5553a3f37765..9c025f8e4fc047e5330a5c623d0c553e1aa26edd 100644 (file)
@@ -1,5 +1,5 @@
 import type { ChargingStation } from './internal';
-import type { ConfigurationKey, StandardParametersKey } from '../types';
+import type { ConfigurationKey, ConfigurationKeyType, StandardParametersKey } from '../types';
 import { logger } from '../utils';
 
 type ConfigurationKeyOptions = { readonly?: boolean; visible?: boolean; reboot?: boolean };
@@ -13,7 +13,7 @@ export class ChargingStationConfigurationUtils {
 
   public static getConfigurationKey(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
+    key: ConfigurationKeyType,
     caseInsensitive = false
   ): ConfigurationKey | undefined {
     return chargingStation.ocppConfiguration?.configurationKey?.find((configElement) => {
@@ -26,7 +26,7 @@ export class ChargingStationConfigurationUtils {
 
   public static addConfigurationKey(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
+    key: ConfigurationKeyType,
     value: string,
     options: ConfigurationKeyOptions = {
       readonly: false,
@@ -65,7 +65,7 @@ export class ChargingStationConfigurationUtils {
 
   public static setConfigurationKeyValue(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
+    key: ConfigurationKeyType,
     value: string,
     caseInsensitive = false
   ): void {
@@ -89,7 +89,7 @@ export class ChargingStationConfigurationUtils {
 
   public static deleteConfigurationKey(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
+    key: ConfigurationKeyType,
     params: DeleteConfigurationKeyParams = { save: true, caseInsensitive: false }
   ): ConfigurationKey[] | undefined {
     const keyFound = ChargingStationConfigurationUtils.getConfigurationKey(
index 463a7567960b2af7672d73eba9db645f135fc380..406cbd001bd21cd444b2211755f3c907856aa8fe 100644 (file)
@@ -42,6 +42,7 @@ export {
   ClearChargingProfileStatus,
   type ConfigurationData,
   type ConfigurationKey,
+  type ConfigurationKeyType,
   ConfigurationStatus,
   ConnectorPhaseRotation,
   ConnectorStatus,
@@ -197,7 +198,7 @@ export {
   type UnlockConnectorRequest,
   type UnlockConnectorResponse,
   UnlockStatus,
-  VendorDefaultParametersKey,
+  VendorParametersKey,
   Voltage,
   type WSError,
   WebSocketCloseEventStatusCode,
index 55528099e6496b424f56d1ab6eb097d16321455e..1bd923767be2d9121967a013af68ee560490e015 100644 (file)
@@ -54,6 +54,6 @@ export enum OCPP16StandardParametersKey {
   MaxChargingProfilesInstalled = 'MaxChargingProfilesInstalled',
 }
 
-export enum OCPP16VendorDefaultParametersKey {
+export enum OCPP16VendorParametersKey {
   ConnectionUrl = 'ConnectionUrl',
 }
index 6b244d043a678e804c852fc6cffdbccac4a21c53..bc45189844dcd9fd09e5f29a717d9375bd25d163 100644 (file)
@@ -7,6 +7,7 @@ import type {
   OCPP16ChargingProfilePurposeType,
   OCPP16DiagnosticsStatus,
   OCPP16StandardParametersKey,
+  OCPP16VendorParametersKey,
 } from '../../internal';
 
 export enum OCPP16RequestCommand {
@@ -65,8 +66,10 @@ export interface OCPP16StatusNotificationRequest extends JsonObject {
 
 export type OCPP16ClearCacheRequest = EmptyObject;
 
+type OCPP16ConfigurationKey = string | OCPP16StandardParametersKey | OCPP16VendorParametersKey;
+
 export interface ChangeConfigurationRequest extends JsonObject {
-  key: string | OCPP16StandardParametersKey;
+  key: OCPP16ConfigurationKey;
   value: string;
 }
 
@@ -85,7 +88,7 @@ export interface UnlockConnectorRequest extends JsonObject {
 }
 
 export interface GetConfigurationRequest extends JsonObject {
-  key?: (string | OCPP16StandardParametersKey)[];
+  key?: OCPP16ConfigurationKey[];
 }
 
 enum ResetType {
index 9de1dcc8a81bf1494061fedc4970863373229707..0b089567c6719680ea690d1b411eddfbf9318bf7 100644 (file)
@@ -74,8 +74,14 @@ type ComponentType = {
   evse?: EVSEType;
 } & JsonObject;
 
+type VariableName =
+  | string
+  | OCPP20RequiredVariableName
+  | OCPP20OptionalVariableName
+  | OCPP20VendorVariableName;
+
 type VariableType = {
-  name: string | OCPP20RequiredVariableName | OCPP20OptionalVariableName | OCPP20VendorVariableName;
+  name: VariableName;
   instance?: string;
 } & JsonObject;
 
index 297b403c39dec73fb62424c53a81b429ef160840..39739a8fffcd7802fe838d7529929738d7406fdb 100644 (file)
@@ -2,7 +2,7 @@ import {
   type JsonObject,
   OCPP16StandardParametersKey,
   OCPP16SupportedFeatureProfiles,
-  OCPP16VendorDefaultParametersKey,
+  OCPP16VendorParametersKey,
   OCPP20OptionalVariableName,
   OCPP20RequiredVariableName,
   OCPP20VendorVariableName,
@@ -15,11 +15,11 @@ export const StandardParametersKey = {
 } as const;
 export type StandardParametersKey = OCPP16StandardParametersKey;
 
-export const VendorDefaultParametersKey = {
-  ...OCPP16VendorDefaultParametersKey,
+export const VendorParametersKey = {
+  ...OCPP16VendorParametersKey,
   ...OCPP20VendorVariableName,
 } as const;
-export type VendorDefaultParametersKey = OCPP16VendorDefaultParametersKey;
+export type VendorParametersKey = OCPP16VendorParametersKey;
 
 export const SupportedFeatureProfiles = {
   ...OCPP16SupportedFeatureProfiles,
@@ -37,8 +37,10 @@ export enum ConnectorPhaseRotation {
   TSR = 'TSR',
 }
 
+export type ConfigurationKeyType = string | StandardParametersKey | VendorParametersKey;
+
 export type OCPPConfigurationKey = {
-  key: string | StandardParametersKey;
+  key: ConfigurationKeyType;
   readonly: boolean;
   value?: string;
 } & JsonObject;