t-comm
Version:
专业、稳定、纯粹的工具库
55 lines (52 loc) • 2.16 kB
JavaScript
import { _ as __assign } from '../tslib.es6-096fffdd.js';
import { safeJsonParse } from '../json/json-parse.mjs';
function fetchRainbowConfigFromSdk(_a) {
var secretInfo = _a.secretInfo,
sdk = _a.sdk,
initOptions = _a.initOptions,
key = _a.key,
_b = _a.isFetchGroup,
isFetchGroup = _b === void 0 ? false : _b,
_c = _a.tryJsonParse,
tryJsonParse = _c === void 0 ? true : _c,
rainbow = _a.rainbow;
return new Promise(function (resolve, reject) {
var Rainbow = sdk.Rainbow,
AccessType = sdk.AccessType,
AddrType = sdk.AddrType;
var httpOptions = __assign({
accessType: AccessType.Default,
// 一次性脚本时,防止 exit 不生效
addrType: rainbow ? undefined : AddrType.Domain,
// 0.4.0 及以上版本默认开启缓存
// //【可选】使用内存缓存,无特殊情况都要开启。业务需严格按照规范打开本地内存缓存,保证当七彩石后端出现异常后,线上业务服务还可以正常运行。若用户强制关闭本地缓存,将实时强依赖七彩石,业务需自己做好兜底措施,否则会有风险隐患。
isUsingLocalCache: true,
// //【可选】使用文件缓存,无特殊情况都要开启。原因同上
isUsingFileCache: true
}, initOptions || {});
var innerRainbow = rainbow || new Rainbow(httpOptions);
var api = isFetchGroup ? 'v3GetGroup' : 'v3Get';
innerRainbow[api]({
appID: secretInfo.appId || secretInfo.appID,
userID: secretInfo.userId || secretInfo.userID,
secretKey: secretInfo.secretKey,
group: secretInfo.groupName,
envName: secretInfo.envName || 'Default'
}, key).then(function (res) {
if (tryJsonParse) {
var result = safeJsonParse(res, res);
resolve(result);
return;
}
resolve(res);
})["catch"](function (err) {
reject(err);
})["finally"](function () {
var _a;
if (!rainbow) {
(_a = innerRainbow.exit) === null || _a === void 0 ? void 0 : _a.call(innerRainbow);
}
})["catch"](function () {});
});
}
export { fetchRainbowConfigFromSdk };