cloud-agnostic-storage
Version:
A package which enables cloud agnostic storage for a NodeJS project.
29 lines (28 loc) • 1.27 kB
JavaScript
;
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;