@artmate/chat
Version:
**开箱即用的AI组件库(基于 Vue3 + ElementPlus)**
2 lines (1 loc) • 3.03 kB
JavaScript
"use strict";var X=h=>{throw TypeError(h)};var D=(h,t,s)=>t.has(h)||X("Cannot "+s);var e=(h,t,s)=>(D(h,t,"read from private field"),s?s.call(h):t.get(h)),a=(h,t,s)=>t.has(h)?X("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(h):t.set(h,s),o=(h,t,s,i)=>(D(h,t,"write to private field"),i?i.call(h,s):t.set(h,s),s),F=(h,t,s)=>(D(h,t,"access private method"),s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("vue");var m,b,v,R,g,w,S,j,k,l,y,d,O,x,M;class A{constructor({baseURL:t,onAbort:s,onMessage:i,onError:n,baseOptions:r,transformer:c,type:u,onFinish:f,...p}={}){a(this,O);a(this,m,null);a(this,b);a(this,v);a(this,R);a(this,g);a(this,w);a(this,S);a(this,j);a(this,k,"sse");a(this,l,null);a(this,y);a(this,d,[]);o(this,v,t??""),o(this,R,r??{}),s&&o(this,g,s),i&&o(this,w,i),n&&o(this,S,n),f&&o(this,y,f),p.onOpen&&o(this,j,p.onOpen),c&&o(this,b,c),u&&o(this,k,u),this.abort=this.abort.bind(this),this.send=this.send.bind(this)}send(t,s={}){switch(e(this,k)){case"fetch":F(this,O,x).call(this,t,s);break;default:F(this,O,M).call(this,t,s)}return this}abort(){var t,s,i,n;(s=(t=e(this,m))==null?void 0:t.close)==null||s.call(t),o(this,m,null),(i=e(this,l))==null||i.abort(),o(this,l,null),(n=e(this,g))==null||n.call(this,e(this,d)),o(this,d,[])}}m=new WeakMap,b=new WeakMap,v=new WeakMap,R=new WeakMap,g=new WeakMap,w=new WeakMap,S=new WeakMap,j=new WeakMap,k=new WeakMap,l=new WeakMap,y=new WeakMap,d=new WeakMap,O=new WeakSet,x=async function(t,s={}){o(this,l,new AbortController);const i=e(this,l).signal,n={...s,signal:i};return fetch(e(this,v)+t,n).then(r=>r.body).then(async r=>{var p,P,W,C;if(!r)return Promise.reject(new Error("Response body is null in stream mode"));const c=r.getReader(),u=new TextDecoder("utf-8");let f=!1;for(;!f;){const{value:L,done:T}=await c.read();if(f=T,T){(p=e(this,y))==null||p.call(this,e(this,d));return}if(L){const q=u.decode(L,{stream:!0}),U=q.startsWith("data: ")?q.slice(6):q;try{const E=e(this,b)?e(this,b).call(this,U):U;e(this,d).push(E),(P=e(this,w))==null||P.call(this,E)}catch(E){return(W=e(this,S))==null||W.call(this,E),(C=e(this,l))==null||C.abort(),Promise.reject(E)}}}}).catch(r=>{var c,u,f;if(r.name==="AbortError"){(c=e(this,g))==null||c.call(this,e(this,d));return}(u=e(this,S))==null||u.call(this,r),(f=e(this,l))==null||f.abort()})},M=function(t,s={}){const i=new EventSource(e(this,v)+t,{...e(this,R),...s});return i.onmessage=n=>{var c;const r=e(this,b)?e(this,b).call(this,n.data):n;(c=e(this,w))==null||c.call(this,r)},i.onopen=()=>{var n;(n=e(this,j))==null||n.call(this)},i.onerror=n=>{var r,c;i.readyState===EventSource.CLOSED?(r=e(this,y))==null||r.call(this,e(this,d)):(c=e(this,S))==null||c.call(this,i,n),this.abort()},o(this,m,i),i};function B({onAbort:h,sendHandler:t,abortHandler:s}={}){const i=z.ref(!1);return{loading:i,abort:()=>{i.value=!1,s==null||s(),h==null||h()},send:(...u)=>{i.value||(t==null||t(...u),i.value=!0)},finish:()=>{i.value=!1}}}exports.XRequest=A;exports.useSend=B;