]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/blobdiff - src/performance/storage/Storage.ts
chore(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / performance / storage / Storage.ts
index aee3ae9efbb5ca86b17a8a7ddf3fcd01b7b80684..5abe052dd524aa3d9af2ba0534772e887e9513de 100644 (file)
@@ -7,32 +7,72 @@ import {
   type EmptyObject,
   type HandleErrorParams,
   type Statistics,
-  StorageType
+  StorageType,
 } from '../../types/index.js'
-import { logger, setDefaultErrorParams } from '../../utils/index.js'
+import { logger } from '../../utils/index.js'
 
 export abstract class Storage {
-  protected readonly storageUri: URL
-  protected readonly logPrefix: string
-  protected dbName!: string
   private static readonly performanceStatistics = new Map<string, Statistics>()
+  protected dbName!: string
+  protected readonly logPrefix: string
+  protected readonly storageUri: URL
 
   constructor (storageUri: string, logPrefix: string) {
     this.storageUri = new URL(storageUri)
     this.logPrefix = logPrefix
   }
 
-  protected handleDBError (
+  public abstract close (): Promise<void> | void
+
+  public getPerformanceStatistics (): IterableIterator<Statistics> {
+    return Storage.performanceStatistics.values()
+  }
+
+  public abstract open (): Promise<void> | void
+
+  public abstract storePerformanceStatistics (
+    performanceStatistics: Statistics
+  ): Promise<void> | void
+
+  protected clearPerformanceStatistics (): void {
+    Storage.performanceStatistics.clear()
+  }
+
+  protected getDBNameFromStorageType (type: StorageType): DBName | undefined {
+    switch (type) {
+      case StorageType.MARIA_DB:
+        return DBName.MARIA_DB
+      case StorageType.MONGO_DB:
+        return DBName.MONGO_DB
+      case StorageType.MYSQL:
+        return DBName.MYSQL
+      case StorageType.SQLITE:
+        return DBName.SQLITE
+    }
+  }
+
+  protected handleDBStorageError (
     type: StorageType,
     error: Error,
     table?: string,
-    params: HandleErrorParams<EmptyObject> = { throwError: false, consoleOut: false }
+    params: HandleErrorParams<EmptyObject> = {
+      consoleOut: false,
+      throwError: false,
+    }
   ): void {
-    setDefaultErrorParams(params, { throwError: false, consoleOut: false })
+    params = {
+      ...{
+        consoleOut: false,
+        throwError: false,
+      },
+      ...params,
+    }
     const inTableOrCollectionStr = table != null && ` in table or collection '${table}'`
     logger.error(
+      // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
       `${this.logPrefix} ${this.getDBNameFromStorageType(type)} error '${
         error.message
+        // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
       }'${inTableOrCollectionStr}:`,
       error
     )
@@ -41,34 +81,7 @@ export abstract class Storage {
     }
   }
 
-  protected getDBNameFromStorageType (type: StorageType): DBName | undefined {
-    switch (type) {
-      case StorageType.SQLITE:
-        return DBName.SQLITE
-      case StorageType.MARIA_DB:
-        return DBName.MARIA_DB
-      case StorageType.MYSQL:
-        return DBName.MYSQL
-      case StorageType.MONGO_DB:
-        return DBName.MONGO_DB
-    }
-  }
-
-  public getPerformanceStatistics (): IterableIterator<Statistics> {
-    return Storage.performanceStatistics.values()
-  }
-
   protected setPerformanceStatistics (performanceStatistics: Statistics): void {
     Storage.performanceStatistics.set(performanceStatistics.id, performanceStatistics)
   }
-
-  protected clearPerformanceStatistics (): void {
-    Storage.performanceStatistics.clear()
-  }
-
-  public abstract open (): void | Promise<void>
-  public abstract close (): void | Promise<void>
-  public abstract storePerformanceStatistics (
-    performanceStatistics: Statistics
-  ): void | Promise<void>
 }