UNPKG

stream-to-it

Version:

Convert Node.js streams to streaming iterables

4 lines (3 loc) 2.09 kB
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.StreamToIt = factory()}(typeof self !== 'undefined' ? self : this, function () { "use strict";var StreamToIt=(()=>{var l=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var R=(r,e)=>{for(var o in e)l(r,o,{get:e[o],enumerable:!0})},A=(r,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of E(e))!H.call(r,i)&&i!==o&&l(r,i,{get:()=>e[i],enumerable:!(n=S(e,i))||n.enumerable});return r};var D=r=>A(l({},"__esModule",{value:!0}),r);var I={};R(I,{duplex:()=>a,sink:()=>u,source:()=>c,transform:()=>g});function c(r){if(P(r))return async function*(){let e=r.getReader();try{for(;;){let{done:o,value:n}=await e.read();if(o)return;yield n}}finally{e.releaseLock()}}();if(F(r))return r;throw new Error("unknown stream")}function F(r){return r[Symbol.asyncIterator]!=null}function P(r){return typeof r?.getReader=="function"}function u(r){return async e=>{let o=async()=>{G(e)&&await e.return(void 0)},n,i,d=t=>{n=t,o().catch(s=>{s=new AggregateError([n,s],"The Writable emitted an error, additionally an error occurred while ending the Source")}).finally(()=>{i?.(t)})},f,m=!1,y=()=>{m=!0,f?.()},h,p=!1,x=()=>{p=!0,h?.()},k,w=()=>{k?.()},v=async()=>new Promise((t,s)=>{f=k=t,i=s,r.once("drain",w)}),C=async()=>(await o(),new Promise((t,s)=>{if(m||p||n!=null){t();return}h=f=t,i=s})),L=()=>{r.removeListener("error",d),r.removeListener("close",y),r.removeListener("finish",x),r.removeListener("drain",w)};r.once("error",d),r.once("close",y),r.once("finish",x);try{for await(let t of e){if(!r.writable||r.destroyed||n!=null)break;r.write(t)||await v()}}catch(t){n==null&&r.destroy(t),n=t}try{if(r.writable&&r.end(),await C(),n!=null)throw n}finally{L()}}}function G(r){return r.return!=null}function a(r){return{sink:u(r),source:c(r)}}function g(r){return async function*(e){let o=a(r),n;if(o.sink(e).catch(i=>{n=i}),yield*o.source,n!=null)throw n}}return D(I);})(); return StreamToIt}));