commandemitter

0.0.1 • Public • Published

wrapper for EventEmitter which queues events and add done method to them. Each event becomes command which is triggered after previous command is done.

API: createCommandEmitter(ee: {emit, on}) : {command, on};

example:

 
const assert = require('assert');
const {createCommandEmitter} = require('commandemitter');
const {EventEmitter} = require('events');
 
const ee = new EventEmitter;
const ce = createCommandEmitter(ee);
const animals = [];
 
ce.on('doge', ({done}) => {
    animals.push('doge');
});
 
ce.on('doge', ({type, done}) => {
    setTimeout(() => {
        done();
    }, 100);
});
 
ce.on('animal', ({type, done}) => {
    animals.push(type);
    done();
});
 
ce.command('doge');
ce.command('animal', {type: 'cat'});
ce.command('animal', {type: 'squirrel'});
 
setTimeout(() => {
    assert.deepEqual(animals, ['doge', 'cat', 'squirrel']);
    done();
}, 600)

Readme

Keywords

none

Package Sidebar

Install

npm i commandemitter

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • hex13