xen-orchestra/@vates/event-listeners-manager
2024-02-02 12:52:11 +01:00
..
.npmignore feat(event-listeners-manager): easy way to clean up event listeners 2022-04-21 14:02:57 +02:00
.USAGE.md feat(event-listeners-manager): easy way to clean up event listeners 2022-04-21 14:02:57 +02:00
index.js fix(event-listeners-manager/add): _listeners is a Map 2022-06-15 14:37:38 +02:00
index.spec.js chore: update to tap@18 2024-02-02 12:52:11 +01:00
package.json chore: update to tap@18 2024-02-02 12:52:11 +01:00
README.md docs: uniformize code blocks 2023-02-06 11:25:12 +01:00

@vates/event-listeners-manager

Package Version License PackagePhobia Node compatibility

Install

Installation of the npm package:

npm install --save @vates/event-listeners-manager

Usage

This library is compatible with Node's EventEmitter and web browsers' EventTarget APIs.

API

import { EventListenersManager } from '@vates/event-listeners-manager'

const events = new EventListenersManager(emitter)

// adding listeners
events.add('foo', onFoo).add('bar', onBar).on('baz', onBaz)

// removing a specific listener
events.remove('foo', onFoo)

// removing all listeners for a specific event
events.removeAll('foo')

// removing all listeners
events.removeAll()

Typical use case

Removing all listeners when no longer necessary.

Manually:

const onFoo = () => {}
const onBar = () => {}
const onBaz = () => {}
emitter.on('foo', onFoo).on('bar', onBar).on('baz', onBaz)

// CODE LOGIC

emitter.off('foo', onFoo).off('bar', onBar).off('baz', onBaz)

With this library:

const events = new EventListenersManager(emitter)

events.add('foo', () => {})).add('bar', () => {})).add('baz', () => {}))

// CODE LOGIC

events.removeAll()

Contributions

Contributions are very welcomed, either on the documentation or on the code.

You may:

  • report any issue you've encountered;
  • fork and create a pull request.

License

ISC © Vates SAS