2.0.0 • Published 1 year ago

@stein197/observer v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Observer pattern implementation for TypeScript

This tiny package implements the observer pattern.

Installation

Run:

npm i @stein197/observer

Usage

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" event

Every 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

  • clean cleans working directory
  • build compiles source code
  • test runs unit tests