1.3.5 • Published 3 years ago

event-emitte-ts v1.3.5

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

EventEmitter in TypeScript

npm i --save es-event-emitter or git clone https://github.com/Zlobin/es-event-emitter.git cd es-event-emitter && npm i && webpack

Benchmark

Run npm start.

const EM = new EventEmitter();

EM
  .on('foo', () => 'response')
  .emit('foo');

Dependencies

There are no dependencies. You need only npm installed and just run npm i to grab the development dependencies.

Examples

var EM = require('es-event-emitter');
html include:
<script src="<PATH/TO/LIBRARY>/dist/bundle.js">
Or ES2015 import:
import EM from 'es-event-emitter';
// ...
Creating an instance.
var EM = new EventEmitter();
An usual example.
EM.on('foo', function() {
  // some code...
});

EM.emit('foo');
It will be triggered only once and then callbacks will be removed.
EM.once('foo', function() {
  // some code...
});

EM.emit('foo');
// Nothing happend.
EM.emit('foo');
Callback with parameters.
EM.once('foo', function(bar, baz) {
  // some code...
});

EM.emit('foo', 'var 1 for bar', 'var 2 for baz');
Callback's call can be ordered by "weight" parameter.
EM.on('foo', function() {
  console.log('3');
}, null, 1);

EM.on('foo', function() {
  console.log('1');
}, null, 3);

EM.on('foo', function() {
  console.log('2');
}, null, 2);

EM.emit('foo');
// 3
// 2
// 1
Chaining.
EM.on('foo', function() {
  // some code...
});

EM
  .emit('foo')
  .emit('foo')
  .off('foo');
Set maxNumberOfListeners as a parameter when creating new instance.
const EM = new EventEmitter(1);

EM.on('foo', function() {
  // some code...
});
// Note: it will show notification in console.
EM.on('foo', function() {
  // some other code...
});

Testing

Tests are performed using mocha and expect library npm test.

Building the documentation

You can use JSDoc comments found within the source code.

Todo

  1. Add event's namespace:
EM.on('foo.*', function() {
  // some code...
});
  1. Add events through comma:
EM.on('foo,bar,baz', function() {
  // some code...
});
  1. Add method "onAny" for listening each event:
EM.onAny(function() {
  // some code...
});
1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.1

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago