UNPKG

roleplayer

Version:

A library for building table top role playing game worlds, and managing campaigns in those worlds

21 lines (16 loc) 446 B
type Func<TEvent = unknown> = (event: TEvent) => void; export default class Observable<TEvent = unknown> { private observers = new Set<Func<TEvent>>(); subscribe(func: Func<TEvent>) { this.observers.add(func); return () => this.unsubscribe(func); } unsubscribe(func: Func<TEvent>) { this.observers.delete(func); } notify(event: TEvent) { for (const observer of this.observers) { observer(event); } } }