Bluebird-Events
This package wraps an event emitter object and returns a bluebird promise that is either resolved, or rejected based on what events are fired from the emitter.
Note: Bluebird-Events v2.x is NOT backwards compatible with v1.x see changelog for details
Installation
npm install bluebird-events
Optionally run tests:
npm test
Usage
// Will resolve the promisesomeEmitter.emit'success-event-name' // Will reject the promise with the given errorsomeEmitter.emit'error-event-name', new Error'Some Error Occurred!'
API
promisify(emitter, events)
emitter
[Object
] - Some object that can emit events (usually inherited from
Events.EventEmitter)
events
[Object
] - Contains a mapping of events to listen for
events.resolve
[String
, Array of Strings
, or Boolean
] - The name for the event that will
cause the promise to resolve (defaults to: 'finish'
)
events.reject
[String
, Array of Strings
, or Boolean
] - The name for the event that will
cause the promise to reject (defaults to: 'error'
)
Returns - a bluebird promise
Note: To disable listening for all resolve or reject events (including default and custom events)
just pass in false
for the resolve/reject value.
// This promise cannot be resolve successfully via an emitted event// But it can be rejected via the default 'error' eventpromisifyemitter,
Dependencies
This library is dependent upon bluebird
, but because bluebird
is so common, there is no need to
install it multiple times so bluebird
is declared as a peerDependency
Note: bluebird
is also declared as a devDependency
for running the test suite
Contributors
📋 Contributing Guide
I welcome all pull requests. Please make sure you add appropriate test cases for any features added. Before opening a PR please make sure to run the following scripts:
npm run lint
checks for code errors and format according to ts-standardnpm test
make sure all tests passnpm run test-cover
make sure the coverage has not decreased from current master