-// 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 type { EmptyObject } from '../../types/EmptyObject';
-import type { HandleErrorParams } from '../../types/Error';
-import type 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 { ErrorUtils, Utils, logger } 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);
type: StorageType,
error: Error,
table?: string,
- params: HandleErrorParams<EmptyObject> = { throwError: false }
+ params: HandleErrorParams<EmptyObject> = { throwError: false, consoleOut: false }
): void {
+ ErrorUtils.handleErrorParams(params, { throwError: false, consoleOut: false });
const inTableOrCollectionStr =
(!Utils.isNullOrUndefined(table) || !table) && ` in table or collection '${table}'`;
logger.error(
}
}
- protected getDBNameFromStorageType(type: StorageType): DBName {
+ protected getDBNameFromStorageType(type: StorageType): DBName | undefined {
switch (type) {
case StorageType.MARIA_DB:
return DBName.MARIA_DB;