1.0.0 • Published 4 years ago

@stein197/ts-observer v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

Observer pattern implementation for TypeScript

This tiny package implements the observer pattern in two different classes - Observer and EventDispatcher.

Installation

Run:

npm i @stein197/ts-observer

Usage

For Observer class:

const productObserver = new Observer<(id: number, name: string) => void>();
productObserver.addListener((id, name) => {/* ... */}); // Adding a listener
productObserver.notify(12, "Title"); // Notifying and passing parameters to all subscribed listeners

For EventDispatcher class:

type PlayerEvent = {
	AfterJoin: (id: number) => void;
	AfterUnjoin: (id: number, reason: string) => void;
}
const playerObserver = new ObserverGroup<PlayerEvent>();
playerObserver.addEventListener("AfterJoin", id => {/* ... */}); // Adding listener on "AfterJoin" event
playerObserver.addEventListener("AfterUnjoin", (id, reason) => {/* ... */}); // Adding listener on "AfterUnjoin" event
playerObserver.notify("AfterJoin", 12); // Firing all listeners subscribed on "AfterJoin" event
playerObserver.notify("AfterUnjoin", 12, "John"); // Firing all listeners subscribed on "AfterUnjoin" event

Testing

Run npm run test to test the package.

1.0.0

4 years ago