1.0.0 • Published 6 years ago

secret-event-listener v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

secret-event-listener

Add an event listener without causing any side effects.

npm

Build status js-standard-style

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 --save

Usage

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 from EventEmitter
  • eventName - the event to add the listener to
  • listener - 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.

License

MIT