X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FStorageFactory.ts;h=2b6b84ffe5b8ad75da53fc7c5fa9687b0e0089cd;hb=16c46962f43a692c996b1c89a94dc572fea52d63;hp=31d0982e7b99682ee6862b518413a60dbf3a6c31;hpb=6d2b7d0121fa6ab41272ed8f4f0d7fd2ce3e8c7d;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/StorageFactory.ts b/src/performance/storage/StorageFactory.ts index 31d0982e..2b6b84ff 100644 --- a/src/performance/storage/StorageFactory.ts +++ b/src/performance/storage/StorageFactory.ts @@ -1,39 +1,44 @@ -// Copyright Jerome Benoit. 2021-2023. All Rights Reserved. +// Copyright Jerome Benoit. 2021-2024. All Rights Reserved. -import { JsonFileStorage } from './JsonFileStorage'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import { MikroOrmStorage } from './MikroOrmStorage'; -import { MongoDBStorage } from './MongoDBStorage'; -import type { Storage } from './Storage'; -import { BaseError } from '../../exception'; -import { StorageType } from '../../types'; +import { BaseError } from '../../exception/index.js' +import { StorageType } from '../../types/index.js' +import { JsonFileStorage } from './JsonFileStorage.js' +import { MikroOrmStorage } from './MikroOrmStorage.js' +import { MongoDBStorage } from './MongoDBStorage.js' +import { None } from './None.js' +import type { Storage } from './Storage.js' +// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class StorageFactory { - private constructor() { + private constructor () { // This is intentional } - public static getStorage( + public static getStorage ( type: StorageType, connectionUri: string, - logPrefix: string, + logPrefix: string ): Storage | undefined { - let storageInstance: Storage; + 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; - // case StorageType.MYSQL: - // case StorageType.MARIA_DB: - // case StorageType.SQLITE: - // storageInstance = new MikroOrmStorage(connectionUri, logPrefix, type); - // break; + storageInstance = new MongoDBStorage(connectionUri, logPrefix) + break + case StorageType.SQLITE: + case StorageType.MARIA_DB: + case StorageType.MYSQL: + storageInstance = new MikroOrmStorage(connectionUri, logPrefix, type) + break + case StorageType.NONE: + storageInstance = new None() + break default: - throw new BaseError(`${logPrefix} Unknown storage type: ${type}`); + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + throw new BaseError(`${logPrefix} Unknown storage type: ${type}`) } - return storageInstance; + return storageInstance } }