1.0.1 • Published 7 years ago

copy-listeners v1.0.1

Weekly downloads
32
License
MIT
Repository
github
Last release
7 years ago

copy-listeners Build Status js-standard-style

copy (or move) event listeners from one event emitter to another

Installation

npm i --save copy-listeners

Usage

Example: copy all listeners from one event emitter to another

var copyListeners = require('copy-listeners')

var ee = new EventEmitter()
var ee2 = new EventEmitter()

ee.on('foo', function () {
  console.log('FOO!')
})

copyListeners(ee, ee2)

ee.emit('foo') // prints "FOO!".. like normal
ee2.emit('foo') // prints "FOO!".. the listener was copied to ee2

Example: copy select listeners from one event emitter to another

var copyListeners = require('copy-listeners')

var ee = new EventEmitter()
var ee2 = new EventEmitter()

ee.on('foo', function () {
  console.log('FOO!')
})
ee.on('bar', function () {
  console.log('BAR!')
})

copyListeners(ee, ee2, ['bar'])

ee.emit('foo') // prints "FOO!".. like normal
ee2.emit('foo') // does nothing.. was not copied
ee.emit('bar') // prints "BAR!".. like normal
ee2.emit('bar') // prints "BAR!".. the listener was copied to ee2

Example: move all listeners from one event emitter to another (removes listeners from source)

var moveListeners = require('copy-listeners').moveListeners

var ee = new EventEmitter()
var ee2 = new EventEmitter()

ee.on('foo', function () {
  console.log('FOO!')
})
ee.on('bar', function () {
  console.log('BAR!')
})

moveListeners(ee, ee2)

ee.emit('foo') // does nothing.. it was removed
ee2.emit('foo') // prints "FOO!".. the listener was copied to ee2
ee.emit('bar') // does nothing.. it was removed
ee2.emit('bar') // prints "BAR!".. the listener was copied to ee2

Example: move select listeners from one event emitter to another (removes listeners from source)

var moveListeners = require('copy-listeners').moveListeners

var ee = new EventEmitter()
var ee2 = new EventEmitter()

ee.on('foo', function () {
  console.log('FOO!')
})
ee.on('bar', function () {
  console.log('BAR!')
})

moveListeners(ee, ee2, ['bar'])
// to move all listeners don't provide `events`: moveListeners(ee, ee2)

ee.emit('foo') // prints "FOO!".. like normal
ee2.emit('foo') // does nothing.. was not copied
ee.emit('bar') // does nothing.. it was removed
ee2.emit('bar') // prints "BAR!".. the listener was copied to ee2

License

MIT