61fce12bacc0de18850830f2106f8931ae6c8d92
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 private constructor() {
11 // This is intentional
14 public static getStorage(type: StorageType
, connectionUri
: string, logPrefix
: string): Storage
{
15 let storageInstance
: Storage
= null;
17 case StorageType
.JSON_FILE
:
18 storageInstance
= new JsonFileStorage(connectionUri
, logPrefix
);
20 case StorageType
.MONGO_DB
:
21 storageInstance
= new MongoDBStorage(connectionUri
, logPrefix
);
23 // case StorageType.MYSQL:
24 // case StorageType.MARIA_DB:
25 // case StorageType.SQLITE:
26 // storageInstance = new MikroOrmStorage(connectionURI, logPrefix, type);
29 throw new Error(`${logPrefix} Unknown storage type: ${type}`);
31 return storageInstance
;