build(deps): apply updates
[e-mobility-charging-stations-simulator.git] / src / performance / storage / Storage.ts
index 96188263e123376769e909be441ee8b0754588a7..4c9ece358075875d4934c9e80111826485bb5919 100644 (file)
@@ -1,18 +1,20 @@
-// Copyright Jerome Benoit. 2021. All Rights Reserved.
+// Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
 
-import { URL } from 'url';
+import { URL } from 'node:url';
 
-import { EmptyObject } from '../../types/EmptyObject';
-import { HandleErrorParams } from '../../types/Error';
-import Statistics from '../../types/Statistics';
-import { DBName, StorageType } from '../../types/Storage';
-import logger from '../../utils/Logger';
-import Utils from '../../utils/Utils';
+import {
+  DBName,
+  type EmptyObject,
+  type HandleErrorParams,
+  type Statistics,
+  StorageType,
+} from '../../types';
+import { isNullOrUndefined, logger, setDefaultErrorParams } from '../../utils';
 
 export abstract class Storage {
   protected readonly storageUri: URL;
   protected readonly logPrefix: string;
-  protected dbName: string;
+  protected dbName!: string;
 
   constructor(storageUri: string, logPrefix: string) {
     this.storageUri = new URL(storageUri);
@@ -23,22 +25,23 @@ export abstract class Storage {
     type: StorageType,
     error: Error,
     table?: string,
-    params: HandleErrorParams<EmptyObject> = { throwError: false }
+    params: HandleErrorParams<EmptyObject> = { throwError: false, consoleOut: false },
   ): void {
+    setDefaultErrorParams(params, { throwError: false, consoleOut: false });
     const inTableOrCollectionStr =
-      (!Utils.isNullOrUndefined(table) || !table) && ` in table or collection '${table}'`;
+      (!isNullOrUndefined(table) || !table) && ` in table or collection '${table}'`;
     logger.error(
       `${this.logPrefix} ${this.getDBNameFromStorageType(type)} error '${
         error.message
       }'${inTableOrCollectionStr}:`,
-      error
+      error,
     );
     if (params?.throwError) {
       throw error;
     }
   }
 
-  protected getDBNameFromStorageType(type: StorageType): DBName {
+  protected getDBNameFromStorageType(type: StorageType): DBName | undefined {
     switch (type) {
       case StorageType.MARIA_DB:
         return DBName.MARIA_DB;
@@ -54,6 +57,6 @@ export abstract class Storage {
   public abstract open(): void | Promise<void>;
   public abstract close(): void | Promise<void>;
   public abstract storePerformanceStatistics(
-    performanceStatistics: Statistics
+    performanceStatistics: Statistics,
   ): void | Promise<void>;
 }