feat(simulator): allow to deprecate only template configuration key
[e-mobility-charging-stations-simulator.git] / src / charging-station / ChargingStationConfigurationUtils.ts
index 6b7cfa23bc425aa8b551aac765cb5553a3f37765..59e39300bb4c8367abda39f556d587b95892ab64 100644 (file)
@@ -1,5 +1,5 @@
-import type { ChargingStation } from './internal';
-import type { ConfigurationKey, StandardParametersKey } from '../types';
+import type { ChargingStation } from './ChargingStation';
+import type { ConfigurationKey, ConfigurationKeyType } from '../types';
 import { logger } from '../utils';
 
 type ConfigurationKeyOptions = { readonly?: boolean; visible?: boolean; reboot?: boolean };
@@ -13,8 +13,8 @@ export class ChargingStationConfigurationUtils {
 
   public static getConfigurationKey(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
-    caseInsensitive = false
+    key: ConfigurationKeyType,
+    caseInsensitive = false,
   ): ConfigurationKey | undefined {
     return chargingStation.ocppConfiguration?.configurationKey?.find((configElement) => {
       if (caseInsensitive) {
@@ -26,19 +26,24 @@ export class ChargingStationConfigurationUtils {
 
   public static addConfigurationKey(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
+    key: ConfigurationKeyType,
     value: string,
     options: ConfigurationKeyOptions = {
       readonly: false,
       visible: true,
       reboot: false,
     },
-    params: AddConfigurationKeyParams = { overwrite: false, save: false }
+    params: AddConfigurationKeyParams = { overwrite: false, save: false },
   ): void {
-    options = options ?? ({} as ConfigurationKeyOptions);
-    options.readonly = options?.readonly ?? false;
-    options.visible = options?.visible ?? true;
-    options.reboot = options?.reboot ?? false;
+    options = {
+      ...{
+        readonly: false,
+        visible: true,
+        reboot: false,
+      },
+      ...options,
+    };
+    params = { ...{ overwrite: false, save: false }, ...params };
     let keyFound = ChargingStationConfigurationUtils.getConfigurationKey(chargingStation, key);
     if (keyFound && params?.overwrite) {
       ChargingStationConfigurationUtils.deleteConfigurationKey(chargingStation, keyFound.key, {
@@ -58,21 +63,21 @@ export class ChargingStationConfigurationUtils {
     } else {
       logger.error(
         `${chargingStation.logPrefix()} Trying to add an already existing configuration key: %j`,
-        keyFound
+        keyFound,
       );
     }
   }
 
   public static setConfigurationKeyValue(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
+    key: ConfigurationKeyType,
     value: string,
-    caseInsensitive = false
+    caseInsensitive = false,
   ): void {
     const keyFound = ChargingStationConfigurationUtils.getConfigurationKey(
       chargingStation,
       key,
-      caseInsensitive
+      caseInsensitive,
     );
     if (keyFound) {
       chargingStation.ocppConfiguration.configurationKey[
@@ -82,25 +87,26 @@ export class ChargingStationConfigurationUtils {
     } else {
       logger.error(
         `${chargingStation.logPrefix()} Trying to set a value on a non existing configuration key: %j`,
-        { key, value }
+        { key, value },
       );
     }
   }
 
   public static deleteConfigurationKey(
     chargingStation: ChargingStation,
-    key: string | StandardParametersKey,
-    params: DeleteConfigurationKeyParams = { save: true, caseInsensitive: false }
+    key: ConfigurationKeyType,
+    params: DeleteConfigurationKeyParams = { save: true, caseInsensitive: false },
   ): ConfigurationKey[] | undefined {
+    params = { ...{ save: true, caseInsensitive: false }, ...params };
     const keyFound = ChargingStationConfigurationUtils.getConfigurationKey(
       chargingStation,
       key,
-      params?.caseInsensitive
+      params?.caseInsensitive,
     );
     if (keyFound) {
       const deletedConfigurationKey = chargingStation.ocppConfiguration?.configurationKey?.splice(
         chargingStation.ocppConfiguration.configurationKey.indexOf(keyFound),
-        1
+        1,
       );
       params?.save && chargingStation.saveOcppConfiguration();
       return deletedConfigurationKey;