1 // Copyright Jerome Benoit. 2021. All Rights Reserved.
3 import { JSONFileStorage
} from
'./JSONFileStorage';
4 import { MikroORMStorage
} from
'./MikroORMStorage';
5 import { MongoDBStorage
} from
'./MongoDBStorage';
6 import { Storage
} from
'./Storage';
7 import { StorageType
} from
'../../types/Storage';
9 export class StorageFactory
{
10 // eslint-disable-next-line @typescript-eslint/no-empty-function
11 private constructor() {
12 // This is intentional
15 public static getStorage(type: StorageType
, connectionURI
: string, logPrefix
: string): Storage
{
16 let storageInstance
: Storage
= 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 Error(`${logPrefix} Unknown storage type: ${type}`);
32 return storageInstance
;