oak-general-business/lib/utils/cos/index.js

37 lines
1.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.composeFileUrl = exports.getCos = exports.registerCos = void 0;
const tslib_1 = require("tslib");
const assert_1 = require("oak-domain/lib/utils/assert");
const qiniu_1 = tslib_1.__importDefault(require("./qiniu"));
const wechat_1 = tslib_1.__importDefault(require("./wechat"));
const ctyun_1 = tslib_1.__importDefault(require("./ctyun"));
const ctyun = new ctyun_1.default();
const qiniu = new qiniu_1.default();
const wechat = new wechat_1.default();
const CosDict = {
[qiniu.name]: qiniu,
[wechat.name]: wechat,
[ctyun.name]: ctyun,
};
/**
* 注入一个其它OSS上实现的uploader类
* @param clazz
*/
function registerCos(clazz) {
const instance = new clazz();
CosDict[instance.name] = instance;
}
exports.registerCos = registerCos;
function getCos(origin) {
(0, assert_1.assert)(CosDict.hasOwnProperty(origin));
return CosDict[origin];
}
exports.getCos = getCos;
function composeFileUrl(extraFile, context, style) {
const { origin } = extraFile;
const cos = CosDict[origin];
return cos.composeFileUrl(extraFile, context, style);
}
exports.composeFileUrl = composeFileUrl;