compose-emitter

Fast, lightweight and powerful composition of an EventEmitter with context binding in mind. Pass your emitter instance and context through options and compose on/off/once/emit methods using
.compose
method.
This package gives you interface with only single method exposed - .compose
. You should implement the expected methods using flexible .compose
method and passing whatever emitter you want. It's up to you to create your emitter of choice with methods of choice. This just gives you the flexibility and context binding.
Install
npm i compose-emitter --save
Usage
For more use-cases see the tests
const emitter = // or get constructorconst ComposeEmitter = ComposeEmitter
ComposeEmitter
Initialize ComposeEmitter with
options
. Pass your EventEmitter instance and optionally passoptions.context
to bind to listeners.
Params
options
{Object}: Pass event emitter instance tooptions.emitter
.
Example
var ComposeEmitter = ComposeEmittervar Emitter = var ee = emitter: ee 'foo' consolelog // => 1, 2, 3 'foo' 1 2 3
ComposeEmitter.extend
Extend your application with ComposeEmitter static and prototype methods. See static-extend or tunnckoCore/app-base for more info and what's static and prototype methods are added.
Params
Parent
{Function}: The constructor to extend, using static-extend.
Example
var ComposeEmitter = ComposeEmittervar Emitter = { if !this instanceof App return options ComposeEmitter} ComposeEmitter Appprototype { return thisname fn context} Appprototype { return thisname fn context} Appprototype { return thisname fn context} Appprototype { return this} var app = context: foo: 'bar' emitter: app
.compose
Compose different
type
of emitter methods. You can use this to create the usual.on
,.emit
and other methods. Pass astype
name of the method that your emitter have and optionaloptions
to pass context for the listeners.
Params
type
{String}: Name of the emitter method that you want to mirror.options
{Object}: Optionally passcontext
that will be bind to listeners.returns
{Function}: Method that accept as many arguments as you want or emitter method need.
Example
var emitter = var Emitter = var on = emittervar emit = emitter
Related
- component-emitter: Event emitter | homepage
- define-property: Define a non-enumerable property on an object. | homepage
- eventemitter3: EventEmitter3 focuses on performance while maintaining a Node.js AND browser… more | homepage
- static-extend: Adds a static
extend
method to a class, to simplify… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.