0.0.2 • Published 3 years ago

mahur v0.0.2

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
3 years ago

mahur

Build Status npm version Node.js Version

Tiny event emitter for browser.

Installation

npm i mahur

Usage

Register and dispatch an event:

import { EventEmitter } from 'mahur';

const emitter = new EventEmitter();
// Register handler.
e.on('event', (arg) => console.log(arg));
// Dispatch events.
e.dispatch('event', 'hello');
// Prints 'hello'.
e.dispatch('event', 'world');
// Prints 'world'.

once:

Register and dispatch an event:

import { EventEmitter } from 'mahur';

const emitter = new EventEmitter();
// Register handler.
e.once('event', (arg) => console.log(arg));
// Dispatch events.
e.dispatch('event', 'hello');
// Prints 'hello'.
e.dispatch('event', 'world');
// `dispatch` returns false and nothing happens.

Unregister a handler:

import { EventEmitter } from 'mahur';

const emitter = new EventEmitter();
// Register handler.
const unreg = e.on('event', (arg) => console.log(arg));
// Dispatch events.
e.dispatch('event', 'hello');
// Prints 'hello'.
// Unregister the handler.
unreg();
e.dispatch('event', 'world');
// `dispatch` returns false and nothing happens.

Multiple handlers are supported:

import { EventEmitter } from 'mahur';

const emitter = new EventEmitter();
// Register handler.
e.once('event', (arg) => console.log('handler 1', arg));
e.once('event', (arg) => console.log('handler 2', arg));
// Dispatch events.
e.dispatch('event', 'hello');
// Prints 'handler 1, hello'.
// Prints 'handler 2, hello'.

By default, the argument type of a handler is unknown. It can be set to a generic type as well:

import { EventEmitter } from 'mahur';

// Create a emitter with a handler argument type of `number`.
const emitter = new EventEmitter<number>();

e.on('event', (arg) => console.log(arg));
// The second argument must be a number.
e.dispatch('event', 1);
// Prints 1.
0.0.2

3 years ago

0.0.1

3 years ago