coze-plugin-utils
Version:
Comprehensive utility library for Coze plugins with multimedia processing, browser automation, cloud storage integration, and AI-powered video/audio generation capabilities
133 lines • 4.85 kB
JavaScript
;
/**
* 全局配置管理模块
* 提供设置和获取全局配置的功能
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.resetGlobalConfig = resetGlobalConfig;
exports.setGlobalConfig = setGlobalConfig;
exports.getGlobalConfig = getGlobalConfig;
// 默认配置值
const DEFAULT_CONFIG = {
baseUrl: 'https://api.coze.cn',
};
// 全局配置存储
let globalConfig = { ...DEFAULT_CONFIG };
/**
* 重置全局配置到默认值
*
* @returns 重置后的默认配置对象
*
* @example
* ```typescript
* // 重置配置
* resetGlobalConfig();
* ```
*/
function resetGlobalConfig() {
globalConfig = { ...DEFAULT_CONFIG };
return { ...globalConfig };
}
/**
* 设置全局配置(实现)
*/
function setGlobalConfig(keyOrConfig, config) {
// 检查是否是直接传入配置对象的情况
if (typeof keyOrConfig === 'object' && config === undefined) {
// 直接传入配置对象的情况: setGlobalConfig(obj)
const fullConfig = keyOrConfig;
// 深度合并配置
if (fullConfig.workflows && globalConfig.workflows) {
fullConfig.workflows = { ...globalConfig.workflows, ...fullConfig.workflows };
}
if (fullConfig.azure && globalConfig.azure) {
fullConfig.azure = {
...globalConfig.azure,
...fullConfig.azure,
speech: { ...globalConfig.azure.speech, ...fullConfig.azure.speech },
};
}
// 更新全局配置
globalConfig = {
...globalConfig,
...fullConfig,
};
}
else {
// 传入 key 和 config 的情况: setGlobalConfig(key, value)
const key = keyOrConfig;
// 验证 key 是否有效
if (!Object.prototype.hasOwnProperty.call(DEFAULT_CONFIG, key)
&& key !== 'jwt' && key !== 'workflows' && key !== 'aliyun' && key !== 'browser' && key !== 'vidu' && key !== 'azure' && key !== 'minimax') {
throw new Error(`无效的配置键: ${String(key)}`);
}
// 根据 key 更新特定配置
if (key === 'workflows' && globalConfig.workflows) {
globalConfig.workflows = { ...globalConfig.workflows, ...config };
}
else if (key === 'jwt' && globalConfig.jwt) {
globalConfig.jwt = { ...globalConfig.jwt, ...config };
}
else if (key === 'jwt' && !globalConfig.jwt) {
globalConfig.jwt = config;
}
else if (key === 'workflows' && !globalConfig.workflows) {
globalConfig.workflows = config;
}
else if (key === 'aliyun' && globalConfig.aliyun) {
globalConfig.aliyun.oss = { ...globalConfig.aliyun.oss, ...config.oss };
}
else if (key === 'aliyun' && !globalConfig.aliyun) {
globalConfig.aliyun = config;
}
else if (key === 'browser' && globalConfig.browser) {
globalConfig.browser = { ...globalConfig.browser, ...config };
}
else if (key === 'browser' && !globalConfig.browser) {
globalConfig.browser = config;
}
else if (key === 'vidu' && globalConfig.vidu) {
globalConfig.vidu = { ...globalConfig.vidu, ...config };
}
else if (key === 'vidu' && !globalConfig.vidu) {
globalConfig.vidu = config;
}
else if (key === 'azure' && globalConfig.azure) {
globalConfig.azure = {
...globalConfig.azure,
...config,
speech: { ...globalConfig.azure.speech, ...config.speech },
};
}
else if (key === 'azure' && !globalConfig.azure) {
globalConfig.azure = config;
}
else if (key === 'minimax' && globalConfig.minimax) {
globalConfig.minimax = { ...globalConfig.minimax, ...config };
}
else if (key === 'minimax' && !globalConfig.minimax) {
globalConfig.minimax = config;
}
else {
globalConfig[key] = config;
}
}
return { ...globalConfig };
}
function getGlobalConfig(key) {
if (key !== undefined) {
// 验证 key 是否有效
if (!Object.prototype.hasOwnProperty.call(DEFAULT_CONFIG, key) && key !== 'jwt' && key !== 'workflows' && key !== 'aliyun' && key !== 'browser' && key !== 'vidu' && key !== 'azure' && key !== 'minimax') {
throw new Error(`无效的配置键: ${String(key)}`);
}
// 返回指定键的配置值的副本
const value = globalConfig[key];
if (typeof value === 'object' && value !== null) {
return { ...value };
}
return value;
}
// 返回完整配置的副本
return { ...globalConfig };
}
//# sourceMappingURL=config.js.map