$ npm install secret-event-listenerAdd an event listener without causing any side effects.
Adding an event listener to an emitter object will normally trigger
certain side effects. E.g. the
newListener
event will be emitted for every new listener added. A
MaxListenersExceededWarning process warning will be emitted if the
emitter reaches is maximum listener
count.
Or a readable stream will enter flowing
mode if a data
listener is added.
This module gives you the ability to attach a listener without triggering any of these side effects.
Only use this module if you are sure you don't want any side effects and there's other way to achieve your goals!
npm install secret-event-listener --save
const {EventEmitter} = require('events')
const addSecretListener = require('secret-event-listener')
const emitter = new EventEmitter()
emitter.on('newListener', function () {
throw new Error('should not fire the newListener event!')
})
addSecretListener(emitter, 'foo', function () {
console.log('foo event fired :)')
})
emitter.emit('foo')
addSecretListener(emitter, eventName, listener)Arguments:
emitter - an object inheriting from
EventEmittereventName - the event to add the listener tolistener - a listener function which should be called every time an
event of eventName is emitted.addSecretListener.prepend(emitter, eventName, listener)Like the main addSecretListener function, except the listener is
added to the beginning of the listeners array for the event named
eventName.