secret-event-listener v1.0.0
secret-event-listener
Add an event listener without causing any side effects.
Why?
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!
Installation
npm install secret-event-listener --saveUsage
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')API
addSecretListener(emitter, eventName, listener)
Arguments:
emitter- an object inheriting fromEventEmittereventName- the event to add thelistenertolistener- a listener function which should be called every time an event ofeventNameis 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.
License
7 years ago
