1 // Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
3 import { StorageType
} from
'../../types';
4 import { JsonFileStorage
, MikroOrmStorage
, MongoDBStorage
, type Storage
} from
'../internal';
6 export class StorageFactory
{
7 private constructor() {
11 public static getStorage(type: StorageType
, connectionUri
: string, logPrefix
: string): Storage
{
12 let storageInstance
: Storage
| null = null;
14 case StorageType
.JSON_FILE
:
15 storageInstance
= new JsonFileStorage(connectionUri
, logPrefix
);
17 case StorageType
.MONGO_DB
:
18 storageInstance
= new MongoDBStorage(connectionUri
, logPrefix
);
20 // case StorageType.MYSQL:
21 // case StorageType.MARIA_DB:
22 // case StorageType.SQLITE:
23 // storageInstance = new MikroOrmStorage(connectionUri, logPrefix, type);
26 throw new Error(`${logPrefix} Unknown storage type: ${type}`);
28 return storageInstance
;