"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProviderFactory = void 0;
const azure_provider_1 = require("./azure.provider");
const gcs_provider_1 = require("./gcs.provider");
const local_provider_1 = require("./local.provider");
const provider_enum_1 = require("./provider.enum");
const s3_provider_1 = require("./s3.provider");
class ProviderFactory {
    static create(providerType, setting, jwtService) {
        switch (providerType) {
            case provider_enum_1.EnumProvider.S3:
                return new s3_provider_1.S3Provider(setting);
            case provider_enum_1.EnumProvider.LOCAL:
                return new local_provider_1.LocalProvider(setting, jwtService);
            case provider_enum_1.EnumProvider.AZURE:
                return new azure_provider_1.AzureProvider(setting);
            case provider_enum_1.EnumProvider.GCS:
                return new gcs_provider_1.GCSProvider(setting);
        }
    }
}
exports.ProviderFactory = ProviderFactory;
//# sourceMappingURL=provider.factory.js.map