import { DBName, StorageType } from '../../types/Storage';
+import { EmptyObject } from '../../types/EmptyObject';
+import { HandleErrorParams } from '../../types/Error';
import Statistics from '../../types/Statistics';
import { URL } from 'url';
import Utils from '../../utils/Utils';
-import getLogger from '../../utils/Logger';
+import logger from '../../utils/Logger';
export abstract class Storage {
protected readonly storageUri: URL;
this.logPrefix = logPrefix;
}
- protected handleDBError(type: StorageType, error: Error, table?: string): void {
- getLogger().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<EmptyObject> = { throwError: false }): void {
+ logger.error(`${this.logPrefix} ${this.getDBNameFromStorageType(type)} error '${error.message}'${(!Utils.isNullOrUndefined(table) || !table) && ` in table or collection '${table}'`}: %j`, error);
+ if (params?.throwError) {
+ throw error;
+ }
}
protected getDBNameFromStorageType(type: StorageType): DBName {