{"version":3,"file":"util.mjs","sources":["../../src/chat/util.ts"],"sourcesContent":["import { MessagePlugin } from 'tdesign-vue-next';\n\n// 根据model获取url\nexport function getUrl(model: string) {\n  let url;\n  switch (model) {\n    case 'hunyuan':\n    case 'hunyuan-13B':\n    case 'hunyuan-lite':\n    case 'hunyuan-vision':\n      url = 'http://hunyuanapi.woa.com/openapi/v1/chat/completions';\n      break;\n    case 'chatgpt':\n      url = 'url2';\n      break;\n    default:\n      url = '';\n  }\n  return url;\n}\nexport function getMofaUrl() {\n  let url = '';\n  // 本地调试走代理\n  if (process.env.NODE_ENV === 'development') {\n    url = `/completions`;\n  } else {\n    // 提供线上环境需宿主业务支持跨域\n    url = `https://mofa.woa.com/api/v1/chat/completions`;\n  }\n  return url;\n}\n\n/**\n * 根据指定规则格式化日期\n * @param {*} date 日期\n * @param {*} rule yyyy-MM-dd hh:mm:ss\n * @returns\n */\n\nexport const formatDateByRule = function (date: Date, ruleStr: string) {\n  const o = {\n    'y+': date.getFullYear(), // 年\n    'M+': date.getMonth() + 1, // 月\n    'd+': date.getDate(), // 日\n    'h+': date.getHours(), // 时\n    'm+': date.getMinutes(), // 分\n    's+': date.getSeconds(), // 秒\n  };\n  let rule = ruleStr;\n  if (/(y+)/.test(rule)) {\n    rule = rule.replace(RegExp.$1, `${date.getFullYear()}`.substr(4 - RegExp.$1.length));\n  }\n  // eslint-disable-next-line no-restricted-syntax\n  for (const k in o) {\n    if (new RegExp(`(${k})`).test(rule)) {\n      // eslint-disable-next-line no-param-reassign\n      rule = rule.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(`${o[k]}`.length));\n    }\n  }\n  return rule;\n};\n// 单例模式解决复制成功提示只显示一次\nexport class MessagePluginSingleton {\n  private static instance: MessagePluginSingleton;\n  private messagePlugin: any;\n\n  private constructor() {\n    this.messagePlugin = null;\n  }\n\n  public static getInstance(): MessagePluginSingleton {\n    if (!MessagePluginSingleton.instance) {\n      MessagePluginSingleton.instance = new MessagePluginSingleton();\n    }\n    return MessagePluginSingleton.instance;\n  }\n\n  public showSuccess(copyTextSuccess: string): void {\n    if (this.messagePlugin) {\n      MessagePlugin.closeAll();\n    }\n    this.messagePlugin = MessagePlugin.success(copyTextSuccess, 1000);\n  }\n  public showError(copyTextFail: string): void {\n    if (this.messagePlugin) {\n      MessagePlugin.closeAll();\n    }\n    this.messagePlugin = MessagePlugin.error(copyTextFail, 1000);\n  }\n}\n// abort无法被catch捕获 todo\nexport class SSEResponse {\n  private controller!: ReadableStreamDefaultController<Uint8Array>;\n  private encoder = new TextEncoder();\n  private stream: ReadableStream<Uint8Array>;\n  private error: boolean;\n\n  constructor(\n    private data: string,\n    private delay: number = 300,\n    error = false, // 新增参数，默认为false\n  ) {\n    this.error = error;\n\n    this.stream = new ReadableStream({\n      start: (controller) => {\n        this.controller = controller;\n        if (!this.error) {\n          // 如果不是错误情况，则开始推送数据\n          this.pushData();\n        }\n      },\n      cancel(reason) {\n        // console.log('Stream canceled', reason);\n      },\n    });\n  }\n\n  private pushData() {\n    if (this.data.length === 0) {\n      this.controller.close();\n      return;\n    }\n    try {\n      const chunk = this.data.slice(0, 1);\n      this.data = this.data.slice(1);\n\n      this.controller.enqueue(this.encoder.encode(chunk));\n\n      if (this.data.length > 0) {\n        this.pushData();\n      } else {\n        // 数据全部发送完毕后关闭流\n        this.controller.close();\n      }\n    } catch {}\n  }\n\n  getResponse(): Promise<Response> {\n    return new Promise((resolve) => {\n      resolve(new Response(this.stream));\n    });\n  }\n}\n"],"names":["getUrl","model","url","getMofaUrl","process","env","NODE_ENV","formatDateByRule","date","ruleStr","o","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","rule","test","replace","RegExp","$1","concat","substr","length","k","MessagePluginSingleton","_classCallCheck","_defineProperty","messagePlugin","_createClass","key","value","showSuccess","copyTextSuccess","MessagePlugin","closeAll","success","showError","copyTextFail","error","getInstance","instance","SSEResponse","data","_this","delay","arguments","undefined","TextEncoder","stream","ReadableStream","start","controller","pushData","cancel","reason","close","chunk","slice","enqueue","encoder","encode","_unused","getResponse","_this2","Promise","resolve","Response"],"mappings":"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"}