import "../_dnt.polyfills.js"; import { Deferred, deferred } from "../deps/std/async.js" export class Notifier implements PromiseLike { private _next: Deferred = null! then( onfulfilled?: ((value: void) => T1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => T2 | PromiseLike) | null | undefined, ) { return (this._next ??= deferred()).then(onfulfilled, onrejected) } emit() { this._next?.resolve() this._next = null! } }