X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FStorage.ts;h=1360dabbad61aa2ec0feb3bde2fddfdd5d8b6d06;hb=a8735ef9770a6dc8f7ed19c7df5fdf607da0834c;hp=2f5feccee9a2e2b888e1a9bfef353ab4ff7d002d;hpb=e0a50bcd7ae5a1b4ce22e39935f96a8f7e1222b4;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/Storage.ts b/src/performance/storage/Storage.ts index 2f5fecce..1360dabb 100644 --- a/src/performance/storage/Storage.ts +++ b/src/performance/storage/Storage.ts @@ -1,31 +1,47 @@ -// Copyright Jerome Benoit. 2021. All Rights Reserved. +// Copyright Jerome Benoit. 2021-2023. All Rights Reserved. -import { DBName, StorageType } from '../../types/Storage'; +import { URL } from 'node:url'; -import { HandleErrorParams } from '../../types/Error'; -import Statistics from '../../types/Statistics'; -import { URL } from 'url'; -import Utils from '../../utils/Utils'; -import logger from '../../utils/Logger'; +import { + DBName, + type EmptyObject, + type HandleErrorParams, + type Statistics, + StorageType, +} from '../../types'; +import { Utils, 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); this.logPrefix = logPrefix; } - protected handleDBError(type: StorageType, error: Error, table?: string, params: HandleErrorParams = { throwError: false }): void { - logger.error(`${this.logPrefix} ${this.getDBNameFromStorageType(type)} error '${error.message}'${(!Utils.isNullOrUndefined(table) || !table) && ` in table or collection '${table}'`}: %j`, error); + protected handleDBError( + type: StorageType, + error: Error, + table?: string, + params: HandleErrorParams = { throwError: false, consoleOut: false } + ): void { + setDefaultErrorParams(params, { throwError: false, consoleOut: false }); + const inTableOrCollectionStr = + (!Utils.isNullOrUndefined(table) || !table) && ` in table or collection '${table}'`; + logger.error( + `${this.logPrefix} ${this.getDBNameFromStorageType(type)} error '${ + error.message + }'${inTableOrCollectionStr}:`, + 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; @@ -40,5 +56,7 @@ export abstract class Storage { public abstract open(): void | Promise; public abstract close(): void | Promise; - public abstract storePerformanceStatistics(performanceStatistics: Statistics): void | Promise; + public abstract storePerformanceStatistics( + performanceStatistics: Statistics + ): void | Promise; }