"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerCosBackend = registerCosBackend; exports.getCosBackend = getCosBackend; exports.composeFileUrlBackend = composeFileUrlBackend; const tslib_1 = require("tslib"); const assert_1 = require("oak-domain/lib/utils/assert"); const ctyun_backend_1 = tslib_1.__importDefault(require("./ctyun.backend")); const wechat_backend_1 = tslib_1.__importDefault(require("./wechat.backend")); const qiniu_backend_1 = tslib_1.__importDefault(require("./qiniu.backend")); const aliyun_backend_1 = tslib_1.__importDefault(require("./aliyun.backend")); const tencent_backend_1 = tslib_1.__importDefault(require("./tencent.backend")); const s3_backend_1 = tslib_1.__importDefault(require("./s3.backend")); const unknown_backend_1 = tslib_1.__importDefault(require("./unknown.backend")); const CosBackendDict = { unknown: new unknown_backend_1.default(), ctyun: new ctyun_backend_1.default(), wechat: new wechat_backend_1.default(), qiniu: new qiniu_backend_1.default(), aliyun: new aliyun_backend_1.default(), tencent: new tencent_backend_1.default(), s3: new s3_backend_1.default(), }; /** * 注入一个其它OSS上实现的uploader类 * @param clazz */ function registerCosBackend(clazz) { const instance = new clazz(); CosBackendDict[instance.name] = instance; } function getCosBackend(origin) { (0, assert_1.assert)(CosBackendDict.hasOwnProperty(origin)); return CosBackendDict[origin]; } async function composeFileUrlBackend(application, extraFile, context, style) { const { origin } = extraFile; const cos = CosBackendDict[origin]; return cos.composeFileUrlBackend({ application, extraFile, context, style }); }