test: fix clone() test for latest node version
[e-mobility-charging-stations-simulator.git] / src / utils / Configuration.ts
index 19afc5861111c7bd41e6ff2ba65e554e51deb35c..30ae873e672a595e362b3c9f68d8818c5b291ee7 100644 (file)
@@ -4,7 +4,7 @@ import { env } from 'node:process'
 import { fileURLToPath } from 'node:url'
 
 import chalk from 'chalk'
-import merge from 'just-merge'
+import { mergeDeepRight } from 'rambda'
 
 import {
   buildPerformanceUriFilePath,
@@ -90,8 +90,7 @@ export class Configuration {
 
   public static getSupervisionUrls (): string | string[] | undefined {
     if (
-      Configuration.getConfigurationData()?.['supervisionURLs' as keyof ConfigurationData] !==
-      undefined
+      Configuration.getConfigurationData()?.['supervisionURLs' as keyof ConfigurationData] != null
     ) {
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
       Configuration.getConfigurationData()!.supervisionUrls = Configuration.getConfigurationData()![
@@ -162,7 +161,7 @@ export class Configuration {
       }
     }
     if (hasOwnProp(Configuration.getConfigurationData(), ConfigurationSection.uiServer)) {
-      uiServerConfiguration = merge<UIServerConfiguration>(
+      uiServerConfiguration = mergeDeepRight(
         uiServerConfiguration,
         // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
         Configuration.getConfigurationData()!.uiServer!
@@ -337,8 +336,8 @@ export class Configuration {
       undefined,
       "Use 'stationTemplateUrls' instead"
     )
-    Configuration.getConfigurationData()?.['stationTemplateURLs' as keyof ConfigurationData] !==
-      undefined &&
+    Configuration.getConfigurationData()?.['stationTemplateURLs' as keyof ConfigurationData] !=
+      null &&
       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
       (Configuration.getConfigurationData()!.stationTemplateUrls =
         // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -348,7 +347,7 @@ export class Configuration {
     Configuration.getConfigurationData()?.stationTemplateUrls.forEach(
       (stationTemplateUrl: StationTemplateUrl) => {
         // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
-        if (stationTemplateUrl['numberOfStation' as keyof StationTemplateUrl] !== undefined) {
+        if (stationTemplateUrl['numberOfStation' as keyof StationTemplateUrl] != null) {
           console.error(
             `${chalk.green(logPrefix())} ${chalk.red(
               `Deprecated configuration key 'numberOfStation' usage for template file '${stationTemplateUrl.file}' in 'stationTemplateUrls'. Use 'numberOfStations' instead`
@@ -509,14 +508,13 @@ export class Configuration {
   ): void {
     if (
       sectionName != null &&
-      Configuration.getConfigurationData()?.[sectionName as keyof ConfigurationData] !==
-        undefined &&
+      Configuration.getConfigurationData()?.[sectionName as keyof ConfigurationData] != null &&
       (
         Configuration.getConfigurationData()?.[sectionName as keyof ConfigurationData] as Record<
         string,
         unknown
         >
-      )[key] !== undefined
+      )[key] != null
     ) {
       console.error(
         `${chalk.green(logPrefix())} ${chalk.red(
@@ -525,9 +523,7 @@ export class Configuration {
           }`
         )}`
       )
-    } else if (
-      Configuration.getConfigurationData()?.[key as keyof ConfigurationData] !== undefined
-    ) {
+    } else if (Configuration.getConfigurationData()?.[key as keyof ConfigurationData] != null) {
       console.error(
         `${chalk.green(logPrefix())} ${chalk.red(
           `Deprecated configuration key '${key}' usage${
@@ -577,7 +573,7 @@ export class Configuration {
           )
           delete Configuration.configurationData
           Configuration.configurationSectionCache.clear()
-          if (Configuration.configurationChangeCallback !== undefined) {
+          if (Configuration.configurationChangeCallback != null) {
             Configuration.configurationChangeCallback()
               .catch(error => {
                 throw typeof error === 'string' ? new Error(error) : error