@klodianimeri/channeljs
Version:
Javascript channel like communication.
3 lines (2 loc) • 918 B
JavaScript
function e(e,r){if(!{}.hasOwnProperty.call(e,r))throw new TypeError("attempted to use private field on non-instance");return e}var r=0;function t(e){return"__private_"+r+++"_"+e}void 0===Promise.withResolvers&&(Promise.withResolvers=()=>{let e,r;return{promise:new Promise((t,o)=>{e=t,r=o}),resolve:e,reject:r}});var o=/*#__PURE__*/t("items");class s{constructor(){Object.defineProperty(this,o,{writable:!0,value:new Set})}send(r){for(const t of e(this,o)[o])t.push(Promise.withResolvers()),t[t.length-2].resolve({done:!1,value:r})}close(){for(const r of e(this,o)[o])r[r.length-1].resolve({done:!0,value:void 0}),e(this,o)[o].delete(r)}[Symbol.asyncIterator](){let r=new Array(Promise.withResolvers()),t=this;return e(t,o)[o].add(r),{next:async()=>(r.length>1&&r.shift(),r[0].promise),return:s=>(e(t,o)[o].delete(r),Promise.resolve({done:!0,value:s}))}}}export{s as Channel};
//# sourceMappingURL=index.modern.js.map