@hazae41/plume
Version:
Typed async events with sequenced and parallel dispatching
1 lines • 2.2 kB
Source Map (JSON)
{"version":3,"file":"waiters.mjs","sources":["../../../../src/mods/waiters.ts"],"sourcesContent":["import { Signals } from \"@hazae41/signals\"\nimport { CloseEvents, rejectOnClose } from \"./closed.js\"\nimport { ErrorEvents, rejectOnError } from \"./errored.js\"\nimport { SuperEventMap, SuperEventTarget, SuperEventWaiter } from \"./target.js\"\n\nexport async function waitOrThrow<M extends SuperEventMap, K extends keyof M, R>(target: SuperEventTarget<M>, type: K, callback: SuperEventWaiter<M[K], R>, signal = new AbortController().signal): Promise<R> {\n using abort = Signals.rejectOnAbort(signal)\n using event = target.wait(type, callback)\n\n return await Promise.race([abort.get(), event.get()])\n}\n\nexport async function waitWithCloseAndErrorOrThrow<M extends SuperEventMap & CloseEvents & ErrorEvents, K extends keyof M, R>(target: SuperEventTarget<M>, type: K, callback: SuperEventWaiter<M[K], R>, signal = new AbortController().signal): Promise<R> {\n using abort = Signals.rejectOnAbort(signal)\n using error = rejectOnError(target)\n using close = rejectOnClose(target)\n using event = target.wait(type, callback)\n\n return await Promise.race([abort.get(), error.get(), close.get(), event.get()])\n}"],"names":[],"mappings":";;;;;AAKO,eAAe,WAAW,CAAgD,MAA2B,EAAE,IAAO,EAAE,QAAmC,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,EAAA;;;QAC/L,MAAM,KAAK,kCAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAA,KAAA,CAAA;QAC3C,MAAM,KAAK,GAAG,uBAAA,CAAA,KAAA,EAAA,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAA,KAAA,CAAA;AAEzC,QAAA,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;;;;;;;;;AACtD;AAEM,eAAe,4BAA4B,CAA4E,MAA2B,EAAE,IAAO,EAAE,QAAmC,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,EAAA;;;QAC5O,MAAM,KAAK,kCAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAA,KAAA,CAAA;AAC3C,QAAA,MAAM,KAAK,GAAG,uBAAA,CAAA,KAAA,EAAA,aAAa,CAAC,MAAM,CAAC,QAAA;AACnC,QAAA,MAAM,KAAK,GAAG,uBAAA,CAAA,KAAA,EAAA,aAAa,CAAC,MAAM,CAAC,QAAA;QACnC,MAAM,KAAK,GAAG,uBAAA,CAAA,KAAA,EAAA,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAA,KAAA,CAAA;QAEzC,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;;;;;;;;;AAChF;;;;"}