ant-design-x-vue-next
Version:
Ant Design X for Vue — community continuation aligned with @ant-design/x
5 lines (3 loc) • 1.51 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const m=`
`,S=`
`,p=":",f=t=>(t??"").trim()!=="";function h(t=m){let e="";return new TransformStream({transform(r,i){e+=r;const s=e.split(t);s.slice(0,-1).forEach(a=>{f(a)&&i.enqueue(a)}),e=s[s.length-1]},flush(r){f(e)&&r.enqueue(e)}})}function T(t=S,e=p){return new TransformStream({transform(r,i){const a=r.split(t).reduce((u,n)=>{const o=n.indexOf(e);if(o===-1)return f(n)&&console.warn(`[XStream] The key-value separator "${e}" is not found in the sse line: ${n}`),u;const c=n.slice(0,o).trim();if(!f(c))return u;const l=n.slice(o+1).trim();return{...u,[c]:l}},{});Object.keys(a).length!==0&&i.enqueue(a)}})}function b(){if(typeof TextDecoderStream<"u")return new TextDecoderStream;const t=new TextDecoder("utf-8");return new TransformStream({transform(e,r){r.enqueue(t.decode(e,{stream:!0}))},flush(e){e.enqueue(t.decode())}})}function g(t){const{readableStream:e,transformStream:r,streamSeparator:i,partSeparator:s,kvSeparator:a}=t;if(!(e instanceof ReadableStream))throw new Error("The options.readableStream must be an instance of ReadableStream.");const u=b(),n=r?e.pipeThrough(u).pipeThrough(r):e.pipeThrough(u).pipeThrough(h(i)).pipeThrough(T(s,a));return n[Symbol.asyncIterator]=async function*(){const o=this.getReader();let c=!1;try{for(;;){const{done:l,value:d}=await o.read();if(l){c=!0;break}d&&(yield d)}}finally{c||o.cancel().catch(()=>{}),o.releaseLock()}},n}exports.default=g;