ajmeyghani / event-manager

A lightweight zero-dependency event manager with flexible event type matching

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm browser node TypeScript

@axtk/event-manager

A lightweight event manager

Usage

Initialization:

import {EventManager} from '@axtk/event-manager';

let eventManager = new EventManager();

Adding a handler of a specific event type:

eventManager.addListener('task started', event => {
    console.log(event);
});

Of all events matching the pattern:

eventManager.addListener(/^task\s/, event => {
    console.log(event);
});

With captured parameters:

eventManager.addListener(/^(\S+)\s(?<status>.*)$/, event => {
    console.log(event.params[0], event.params.status);
});

Adding a handler of all events dispatched to the eventManager instance:

let listener = eventManager.addListener('*', event => {
    console.log(event);
});

Dispatching an event of a specific type and properties:

eventManager.dispatch('task started', {x: 42});

Removing a previously declared listener:

listener.remove();

About

A lightweight zero-dependency event manager with flexible event type matching


Languages

Language:TypeScript 100.0%