X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FStorageFactory.ts;h=f5cfcbefa6af6e134caef94f085f567170be40c6;hb=68220b423c52da387fdf41967dd8c738da0ff52e;hp=5ed114849638bef2432b3e5c6cc955b1cb6b334e;hpb=0045cef5dae3be8131969d08f70c10748922524e;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/StorageFactory.ts b/src/performance/storage/StorageFactory.ts index 5ed11484..f5cfcbef 100644 --- a/src/performance/storage/StorageFactory.ts +++ b/src/performance/storage/StorageFactory.ts @@ -1,33 +1,40 @@ -// Copyright Jerome Benoit. 2021. All Rights Reserved. +// Copyright Jerome Benoit. 2021-2023. All Rights Reserved. -import { JSONFileStorage } from './JSONFileStorage'; -import { MikroORMStorage } from './MikroORMStorage'; -import { MongoDBStorage } from './MongoDBStorage'; -import { Storage } from './Storage'; -import { StorageType } from '../../types/Storage'; +import { JsonFileStorage } from './JsonFileStorage.js' +// eslint-disable-next-line @typescript-eslint/no-unused-vars +import { MikroOrmStorage } from './MikroOrmStorage.js' +import { MongoDBStorage } from './MongoDBStorage.js' +import type { Storage } from './Storage.js' +import { BaseError } from '../../exception/index.js' +import { StorageType } from '../../types/index.js' +// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class StorageFactory { - private constructor() { + private constructor () { // This is intentional } - public static getStorage(type: StorageType, connectionURI: string, logPrefix: string): Storage { - let storageInstance: Storage = null; + public static getStorage ( + type: StorageType, + connectionUri: string, + logPrefix: string + ): Storage | undefined { + let storageInstance: Storage switch (type) { case StorageType.JSON_FILE: - storageInstance = new JSONFileStorage(connectionURI, logPrefix); - break; + storageInstance = new JsonFileStorage(connectionUri, logPrefix) + break case StorageType.MONGO_DB: - storageInstance = new MongoDBStorage(connectionURI, logPrefix); - break; + storageInstance = new MongoDBStorage(connectionUri, logPrefix) + break // case StorageType.MYSQL: // case StorageType.MARIA_DB: // case StorageType.SQLITE: - // storageInstance = new MikroORMStorage(connectionURI, logPrefix, type); - // break; + // storageInstance = new MikroOrmStorage(connectionUri, logPrefix, type) + // break default: - throw new Error(`${logPrefix} Unknown storage type: ${type}`); + throw new BaseError(`${logPrefix} Unknown storage type: ${type}`) } - return storageInstance; + return storageInstance } }