Strictly checks that given value is nodejs EventEmitter or something like it. It's easy, because his API is in frozen state.
npm i is-node-emitter --save
For more use-cases see the tests
var isNodeEmitter = require('is-node-emitter')
// emitters
var Emitter = require('events').EventEmitter
var DualEmitter = require('dual-emitter')
var ChildProcess = require('child_process')
var EventEmitter2 = require('eventemitter2').EventEmitter2
var EventEmitter3 = require('eventemitter3')
var ComponentEmitter = require('component-emitter')
// from iojs 2.x
var ChildProcessCtor = require('child_process').ChildProcess
var fs = require('fs')
isNodeEmitter(fs.createReadStream('./index'))
isNodeEmitter(new Emitter())
isNodeEmitter(new EventEmitter2({wildcard: false}))
isNodeEmitter(new ChildProcessCtor())
isNodeEmitter(ChildProcess.spawn('echo', ['hello']))
isNodeEmitter(ChildProcess.exec('echo hello'))
isNodeEmitter(DualEmitter())
isNodeEmitter(ComponentEmitter())
isNodeEmitter(new DualEmitter())
isNodeEmitter(new ComponentEmitter())
isNodeEmitter(new EventEmitter3())
- component-emitter: Event emitter
- dual-emitter: 🍹 EventEmitter done right and no dependencies. For nodejs and the browser (>= IE8). Can emit custom or DOM events.
- dush: Minimalist 1.5kb event delegation for the browser (IE8+) and nodejs.
- eventemitter2: A Node.js event emitter implementation with namespaces, wildcards, TTL and browser support.
- eventemitter3: EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.
- kudos: kudos done right - unopinionated, made simple, so simple it hurts!
- to-emitter: Convert any object into an event-emitter, and emits events with the name of any any method called on the object.
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.