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