t-comm
Version:
专业、稳定、纯粹的工具库
83 lines (76 loc) • 2.66 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var axios = require('axios');
var rainbow_helper_helper = require('./helper/helper.js');
var rainbow_sdk = require('./sdk.js');
var list_flat = require('../list/flat.js');
require('../tslib.es6-01322ba9.js');
require('../json/json-parse.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
/**
* 拉取七彩石配置
* @param {String} key 七彩石的key
* @param {object} secretInfo 密钥信息
* @param {string} secretInfo.appId 项目Id
* @param {string} secretInfo.envName 环境
* @param {string} secretInfo.groupName 组名称
* @returns {Promise<object>} 请求Promise
*
* @example
*
* fetchRainbowConfig('test', {
* appId: 'xx',
* envName: 'prod',
* groupName: 'robot',
* }).then((resp) => {
* console.log(resp)
* });
*
*/
function fetchRainbowConfig(key, secretInfo, options) {
var _a;
var appID = secretInfo.appID,
appId = secretInfo.appId,
envName = secretInfo.envName,
groupName = secretInfo.groupName,
userId = secretInfo.userId,
userID = secretInfo.userID,
secretKey = secretInfo.secretKey;
if ((userId || userID) && secretKey && (options === null || options === void 0 ? void 0 : options.sdk)) {
return rainbow_sdk.fetchRainbowConfigFromSdk({
secretInfo: secretInfo,
sdk: options.sdk,
key: key,
initOptions: options === null || options === void 0 ? void 0 : options.initOptions,
isFetchGroup: options === null || options === void 0 ? void 0 : options.isFetchGroup,
tryJsonParse: (_a = options === null || options === void 0 ? void 0 : options.tryJsonParse) !== null && _a !== void 0 ? _a : false
});
}
return new Promise(function (resolve, reject) {
axios__default["default"]({
url: "".concat(rainbow_helper_helper.BASE_URL, "/config.v2.ConfigService/PullConfigReq"),
method: 'POST',
data: {
pull_item: {
app_id: appId || appID,
group: groupName,
envName: envName
}
}
}).then(function (res) {
var _a;
if (res.data.ret_code) {
reject(res.data);
return;
}
var keyValues = res.data.config.items[0].key_values;
var flattenValues = list_flat.flatten(keyValues, 'key');
var resData = (_a = flattenValues[key]) === null || _a === void 0 ? void 0 : _a.value;
resolve(resData);
})["catch"](function (err) {
reject(err);
});
});
}
exports.fetchRainbowConfig = fetchRainbowConfig;