UNPKG

cloud-agnostic-storage

Version:

A package which enables cloud agnostic storage for a NodeJS project.

43 lines (31 loc) 1.14 kB
import AWSCloudStorageService from "../services/AWSCloudStorageService"; import AzureCloudStorageService from "../services/AzureCloudStorageService"; import { CLOUD_PROVIDERS } from "../constants/CloudProviders"; import { CloudStorageConstructor } from "../models/CloudStorageService.models"; class ClassStorageRegistry { private registry: Map<string, CloudStorageConstructor>; constructor() { this.registry = new Map(); } registerCloudStorage(key: string, CloudStorageClass: any): void { this.registry.set(key, CloudStorageClass); return; } getCloudStorageClass(key: string): any { const CloudStorageClass = this.registry.get(key); if (!CloudStorageClass) { throw new Error(`Configuration does not exist for: ${key}`); } return CloudStorageClass; } } const cloudStorageRegistry = new ClassStorageRegistry(); cloudStorageRegistry.registerCloudStorage( CLOUD_PROVIDERS.AWS, AWSCloudStorageService ); cloudStorageRegistry.registerCloudStorage( CLOUD_PROVIDERS.AZURE, AzureCloudStorageService ); export default cloudStorageRegistry;