2.0.0 • Published 3 years ago
@stein197/observer v2.0.0
Observer pattern implementation for TypeScript
This tiny package implements the observer pattern.
Installation
Run:
npm i @stein197/observerUsage
import Event from "@stein197/observer/Event";
class JoinEvent extends Event {}
class LeaveEvent extends Event {}
const dispatcher = new EventDispatcher<[JoinEvent, LeaveEvent]>();
dispatcher.addEventListener(JoinEvent, event => {}); // Adding listener on JoinEvent event
dispatcher.addEventListener(LeaveEvent, event => {}); // Adding listener on LeaveEvent event
dispatcher.dispatch(JoinEvent, new JoinEvent()); // Firing all listeners subscribed on "AfterJoin" event
dispatcher.dispatch(LeaveEvent, new LeaveEvent()); // Firing all listeners subscribed on "AfterUnjoin" eventEvery class that emits event must implement EventEmitter interface:
import type {EventEmitter} from "@stein197/observer/EventEmitter";
class User implements EventEmitter<[]> {
public addEventListener(/* ... */) {/* ... */}
public removeEventListener(/* ... */) {/* ... */}
}NPM scripts
cleancleans working directorybuildcompiles source codetestruns unit tests