Skip to content

untemps/event-dispatcher

Repository files navigation

@untemps/event-dispatcher

Abstract class that allows to internally dispatch events and attach subscribers to listen for them.

npm GitHub Workflow Status Codecov

Installation

yarn add @untemps/event-dispatcher

Usage

Import EventDispatcher:

import { EventDispatcher } from '@untemps/event-dispatcher'

Create a class that extends EventDispatcher:

class Foo extends EventDispatcher {
	constructor() {
		super()
	}

	foo() {
		this.dispatchEvent(new Event('foo', { bubbles: false, cancelable: false, composed: false }))
	}
}

Each instance can now attach a subscriber to listen for events:

const onFoo = (event) => console.log('foo has be triggered!')
const myFoo = new Foo()
myFoo.addEventListener('foo', onFoo)

And detach it:

myFoo.removeEventListener('foo', onFoo)

All subscriptions for a specific event type can be detached in batches:

const myFoo = new Foo()
myFoo.addEventListener('foo', onFoo1)
myFoo.addEventListener('foo', onFoo2)
myFoo.clearType('somethingDone')

All instance subscriptions can be detached in batches:

const myFoo = new Foo()
myFoo.addEventListener('foo', onFoo)
myFoo.addEventListener('bar', onBar)
myFoo.cleanup()

Todos

  • Add examples
  • Rewrite with TypeScript

About

Abstract class to manage event dispatching

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •