UNPKG

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
"use strict"; /** * 全局配置管理模块 * 提供设置和获取全局配置的功能 */ 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