t-comm
Version:
专业、稳定、纯粹的工具库
40 lines (39 loc) • 1.53 kB
TypeScript
import type { ISecretInfo } from './types';
/**
* 通过七彩石 SDK 拉取配置(适用于 Node.js 服务端)
* 支持 v3Get 和 v3GetGroup 两种模式,内置内存缓存和文件缓存
* @param {object} config 配置信息
* @param {ISecretInfo} config.secretInfo 密钥信息,包含 appId、userId、secretKey、groupName、envName
* @param {any} config.sdk 七彩石 SDK 实例(需包含 Rainbow、AccessType、AddrType)
* @param {string} config.key 要获取的配置 key
* @param {Record<string, any>} [config.initOptions] Rainbow 初始化额外选项
* @param {boolean} [config.isFetchGroup=false] 是否使用 v3GetGroup 获取整组配置
* @param {boolean} [config.tryJsonParse=true] 是否尝试 JSON.parse 解析返回值
* @param {any} [config.rainbow] 外部传入的 Rainbow 实例(传入后不会自动 exit)
* @returns {Promise<any>} 配置值
* @example
* ```ts
* import * as sdk from 'rainbow-sdk';
*
* const config = await fetchRainbowConfigFromSdk({
* secretInfo: {
* appId: 'xxx',
* userId: 'xxx',
* secretKey: 'xxx',
* groupName: 'default',
* envName: 'prod',
* },
* sdk,
* key: 'my_config_key',
* });
* ```
*/
export declare function fetchRainbowConfigFromSdk({ secretInfo, sdk, initOptions, key, isFetchGroup, tryJsonParse, rainbow, }: {
secretInfo: ISecretInfo;
sdk: any;
key: string;
initOptions?: Record<string, any>;
isFetchGroup?: boolean;
tryJsonParse?: boolean;
rainbow?: any;
}): Promise<unknown>;