typescript-event

Typed event written on typescript

Usage no npm install needed!

<script type="module">
  import typescriptEvent from 'https://cdn.skypack.dev/typescript-event';
</script>

README

How to install

yarn add typescript-event # npm install typescript-event

Usage

const event = new TypedEvent<string>();
event.on((name) => console.log(`Hello, ${name}!`));
event.raise('bro'); // Hello, bro!
event.dispose();

API

export interface ITypedEvent<T> {
    on(observer: IObserver<T>): IUnsubscribe;
    once(observer: IObserver<T>): IUnsubscribe;
    off(observer: IObserver<T>): void;
    raise(data: T): void;
    dispose(): void;
    toPromise(): Promise<T>;
}

Promise

const promise = Promise.resolve('bro');
const event = TypedEvent.fromPromise(promise);
const [v1, v2] = await Promise.all([event.toPromise(), promise])
console.log(v1 === v2); // true