UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

76 lines (73 loc) 2.35 kB
import axios from 'axios'; import { flatten } from '../list/flat.js'; import '../tslib.es6-096fffdd.js'; import '@babel/runtime/helpers/typeof'; import { BASE_URL } from './helper/helper.js'; import { fetchRainbowConfigFromSdk } from './sdk.js'; import '../json/json-parse.js'; /** * 拉取七彩石配置 * @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 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({ url: "".concat(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 = flatten(keyValues, 'key'); var resData = (_a = flattenValues[key]) === null || _a === void 0 ? void 0 : _a.value; resolve(resData); })["catch"](function (err) { reject(err); }); }); } export { fetchRainbowConfig };