UNPKG

cloud-agnostic-storage

Version:

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

29 lines (28 loc) 1.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const AWSCloudStorageService_1 = __importDefault(require("../services/AWSCloudStorageService")); const AzureCloudStorageService_1 = __importDefault(require("../services/AzureCloudStorageService")); const CloudProviders_1 = require("../constants/CloudProviders"); class ClassStorageRegistry { constructor() { this.registry = new Map(); } registerCloudStorage(key, CloudStorageClass) { this.registry.set(key, CloudStorageClass); return; } getCloudStorageClass(key) { 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(CloudProviders_1.CLOUD_PROVIDERS.AWS, AWSCloudStorageService_1.default); cloudStorageRegistry.registerCloudStorage(CloudProviders_1.CLOUD_PROVIDERS.AZURE, AzureCloudStorageService_1.default); exports.default = cloudStorageRegistry;