UNPKG

cloud-presign

Version:

A unified presigned URL generator for multiple cloud platforms

41 lines (36 loc) 1.36 kB
import { Config, CloudProvider, Provider } from '../types'; import { AwsProvider } from './aws'; import { GcpProvider } from './gcp'; import { AzureProvider } from './azure'; import { DigitalOceanProvider } from './digital-ocean'; /** * Get the appropriate provider implementation based on configuration * @param config - The loaded configuration * @returns Provider implementation */ export function getProvider(config: Config): Provider { switch (config.provider) { case CloudProvider.AWS: if (!config.aws) { throw new Error('AWS configuration is missing'); } return new AwsProvider(config.aws, config.expiration); case CloudProvider.GCP: if (!config.gcp) { throw new Error('GCP configuration is missing'); } return new GcpProvider(config.gcp, config.expiration); case CloudProvider.AZURE: if (!config.azure) { throw new Error('Azure configuration is missing'); } return new AzureProvider(config.azure, config.expiration); case CloudProvider.DIGITAL_OCEAN: if (!config.digitalOcean) { throw new Error('Digital Ocean configuration is missing'); } return new DigitalOceanProvider(config.digitalOcean, config.expiration); default: throw new Error(`Unsupported provider: ${config.provider}`); } }