feat(simulator): add certificates related OCPP 2.x types
[e-mobility-charging-stations-simulator.git] / src / performance / storage / StorageFactory.ts
CommitLineData
edd13439 1// Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
c27c3eee 2
268a74bb 3import { StorageType } from '../../types';
2896e06d 4import { JsonFileStorage, MikroOrmStorage, MongoDBStorage, type Storage } from '../internal';
72f041bd
JB
5
6export class StorageFactory {
6c3cfef8
JB
7 private constructor() {
8 // This is intentional
9 }
72f041bd 10
1f5df42a 11 public static getStorage(type: StorageType, connectionUri: string, logPrefix: string): Storage {
1895299d 12 let storageInstance: Storage | null = null;
72f041bd
JB
13 switch (type) {
14 case StorageType.JSON_FILE:
100a5301 15 storageInstance = new JsonFileStorage(connectionUri, logPrefix);
72f041bd
JB
16 break;
17 case StorageType.MONGO_DB:
1f5df42a 18 storageInstance = new MongoDBStorage(connectionUri, logPrefix);
72f041bd 19 break;
a6b3c6c3
JB
20 // case StorageType.MYSQL:
21 // case StorageType.MARIA_DB:
22 // case StorageType.SQLITE:
7f61131f 23 // storageInstance = new MikroOrmStorage(connectionUri, logPrefix, type);
a6b3c6c3 24 // break;
72f041bd 25 default:
fb226c9b 26 throw new Error(`${logPrefix} Unknown storage type: ${type}`);
72f041bd
JB
27 }
28 return storageInstance;
29 }
30}