Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

weak-emitter

Contexts based event emitter on ES6 WeakMaps

Build Status npm version

const context = {}
const eventKey = 'propName'
emitter.on(context, eventKey, (...args) => console.log(args))
emitter.emit(context, eventKey, 'first', 2, true)
// ['first', 2, true]

Install

npm i weak-emitter --save
# or: yarn add weak-emitter

Emitter API

Argument types:

  • context: object
  • eventKey: string | object
  • handler: (...args: []) => void

on(context, eventKey, handler)

Create new event with eventKey in context that will trigger the handler. Every handler will be added once, despite the number of times it was added to the event. Handlers are invoked in the order they were added.

Returns an event controller that has three methods:

  • emit(...args): trigger handler
  • off(): remove event
  • tranfer(destination): moves the event to destination context
const context = {}
const eventKey = 'propName'
const evController = emitter.on(context, eventKey, (...args) => doSomething(args))

const ctx2 = {}
evController.transfer(ctx2)
evController.off()

emit(context, eventKey[, ...args])

Invoke all handlers in context tagged with key, passing the rest of the arguments

const context = {}
const eventKey = 'propName'
emitter.on(context, eventKey, (...args) => console.log(args))
emitter.emit(context, eventKey, 'first', 2, true)
// ['first', 2, true]

off(context, key, handler)

Removes handler from the event tagged with key in context

emitter.off(context, eventKey, handler)

Testing

npm test




© 2020 Jacobo Tabernero - Released under MIT License

About

Contexts based event emitter on ES6 WeakMaps

Topics

Resources

License

You can’t perform that action at this time.