Skip to content
This repository has been archived by the owner on Nov 24, 2017. It is now read-only.

pleerock/event-dispatch

Repository files navigation

event-dispatch

Allows to register subscribers and dispatch events across the application.

Installation

  1. Install module:

    npm install event-dispatch --save

  2. Use typings to install all required definition dependencies.

    typings install

  3. ES6 features are used, so you may want to install es6-shim too:

    npm install es6-shim --save

    if you are building nodejs app, you may want to require("es6-shim"); in your app. or if you are building web app, you man want to add <script src="path-to-shim/es6-shim.js"> on your page.

Usage

Simply create a class and put annotations on its methods:

import {EventSubscriber, On} from "event-dispatch";

@EventSubscriber()
export class UserEventSubscriber {

    @On("onUserCreate")
    onUserCreate(user: User) {
        console.log("User " + user.name + " created!");
    }

    @On("onStatusUpdate")
    updateUserStatus(status: string) {
        console.log("New status: " + status);
    }

}

Then use EventDispatcher class to dispatch events:

import {EventDispatcher} from "event-dispatch";

// note that all your subscribers must be imported somewhere in the app, so they are getting registered
// on node you can also require the whole directory using [require all](https://www.npmjs.com/package/require-all) package

import "./subscriber/UserEventSubscriber";

let eventDispatcher = new EventDispatcher();
eventDispatcher.dispatch("onUserCreate", new User("Johny"));
eventDispatcher.dispatch("onStatusUpdate", "hello world");

Samples

Take a look on samples in ./sample for more examples of usages.

Todos

  • cover with tests
  • more documentation

About

Dispatching and listening for application events in Typescript

Resources

Stars

Watchers

Forks

Packages

No packages published