rsed

Event Dispatcher

Usage no npm install needed!

<script type="module">
  import rsed from 'https://cdn.skypack.dev/rsed';
</script>

README

RSED - Event Dispatcher

RSED is really simple event dispatcher.

Getting Started

Build your custom application event

export default class CurrentUserSaved 
{
  public user: User;  
  constructor(user: User) {
    this.user = user;
  }
}

Build event listeners

You have to build class that implements IListenerProvider.

import { AppEventHandler, IListenerProvider } from "rsed";

export default class CurrentUserEventListener implements IListenerProvider {

  getListenersForEvent(event: object): AppEventHandler[] {
    if (event instanceof CurrentUserSaved) {
      return [this.setAccess];
    }
    return [];
  }

  setAccess = (event: CurrentUserSaved) => {
    console.log("New user authenticated", event.user) 
  };
}

Build event dispatcher

import EventDispatcher, { IEventDispatcher } from "rsed";

const eventDispatcher = new EventDispatcher();
eventDispatcher.addListenerProvider(
    new CurrentUserEventListener()
);

Dispatch event in your application

eventDispatcher.dispatch(new CurrentUserSaved(currentUser));