Commit | Line | Data |
---|---|---|
72f041bd JB |
1 | import { JSONFileStorage } from './JSONFileStorage'; |
2 | import { MongoDBStorage } from './MongoDBStorage'; | |
3 | import { Storage } from './Storage'; | |
4 | import { StorageType } from '../../types/Storage'; | |
5 | import logger from '../Logger'; | |
6 | ||
7 | export class StorageFactory { | |
8 | // eslint-disable-next-line @typescript-eslint/no-empty-function | |
6c3cfef8 JB |
9 | private constructor() { |
10 | // This is intentional | |
11 | } | |
72f041bd JB |
12 | |
13 | public static getStorage(type: StorageType, connectionURI: string, logPrefix: string): Storage { | |
14 | let storageInstance: Storage = null; | |
15 | switch (type) { | |
16 | case StorageType.JSON_FILE: | |
17 | storageInstance = new JSONFileStorage(connectionURI, logPrefix); | |
18 | break; | |
19 | case StorageType.MONGO_DB: | |
20 | storageInstance = new MongoDBStorage(connectionURI, logPrefix); | |
21 | break; | |
22 | default: | |
23 | logger.error(`${logPrefix} Unknown storage type: ${type}`); | |
24 | } | |
25 | return storageInstance; | |
26 | } | |
27 | } |