1c109e1be628bfe4bf99d4499ae6227cd8a200d7
1 // Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
3 import { JsonFileStorage
} from
'./JsonFileStorage';
4 import { MikroOrmStorage
} from
'./MikroOrmStorage';
5 import { MongoDBStorage
} from
'./MongoDBStorage';
6 import type { Storage
} from
'./Storage';
7 import { BaseError
} from
'../../exception';
8 import { StorageType
} from
'../../types';
10 export class StorageFactory
{
11 private constructor() {
12 // This is intentional
15 public static getStorage(type: StorageType
, connectionUri
: string, logPrefix
: string): Storage
{
16 let storageInstance
: Storage
| null = null;
18 case StorageType
.JSON_FILE
:
19 storageInstance
= new JsonFileStorage(connectionUri
, logPrefix
);
21 case StorageType
.MONGO_DB
:
22 storageInstance
= new MongoDBStorage(connectionUri
, logPrefix
);
24 // case StorageType.MYSQL:
25 // case StorageType.MARIA_DB:
26 // case StorageType.SQLITE:
27 // storageInstance = new MikroOrmStorage(connectionUri, logPrefix, type);
30 throw new BaseError(`${logPrefix} Unknown storage type: ${type}`);
32 return storageInstance
;