UNPKG

cloud-presign

Version:

A unified presigned URL generator for multiple cloud platforms

40 lines (39 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProvider = getProvider; const types_1 = require("../types"); const aws_1 = require("./aws"); const gcp_1 = require("./gcp"); const azure_1 = require("./azure"); const digital_ocean_1 = require("./digital-ocean"); /** * Get the appropriate provider implementation based on configuration * @param config - The loaded configuration * @returns Provider implementation */ function getProvider(config) { switch (config.provider) { case types_1.CloudProvider.AWS: if (!config.aws) { throw new Error('AWS configuration is missing'); } return new aws_1.AwsProvider(config.aws, config.expiration); case types_1.CloudProvider.GCP: if (!config.gcp) { throw new Error('GCP configuration is missing'); } return new gcp_1.GcpProvider(config.gcp, config.expiration); case types_1.CloudProvider.AZURE: if (!config.azure) { throw new Error('Azure configuration is missing'); } return new azure_1.AzureProvider(config.azure, config.expiration); case types_1.CloudProvider.DIGITAL_OCEAN: if (!config.digitalOcean) { throw new Error('Digital Ocean configuration is missing'); } return new digital_ocean_1.DigitalOceanProvider(config.digitalOcean, config.expiration); default: throw new Error(`Unsupported provider: ${config.provider}`); } }