0.2.1 • Published 7 years ago
@cfware/promisify-emitter v0.2.1
@cfware/promisify-emitter
Initiate a promise that resolves or rejects based on emitter events.
Install @cfware/promisify-emitter
This module requires node.js 6 or above.
npm i --save @cfware/promisify-emitter
Usage
Direct usage on emitter that is not yet resolved
const koa = require('koa');
const promisifyEmitter = require('@cfware/promisify-emitter');
async function main() {
const app = new koa();
app.use(ctx => ctx.body = 'Hello world!');
const server = await promisifyEmitter(app.listen(0), 'listening');
console.log(`Listening at http://localhost:${server.address().port}/`);
}
main().catch(console.error);
Extending class with a replacement function
const koa_base = require('koa');
const promisifyEmitter = require('@cfware/promisify-emitter');
class koa extends koa_base {
listen(...args) {
return promisifyEmitter(super.listen(...args), 'listening');
}
}
async function main() {
const app = new koa();
app.use(ctx => ctx.body = 'Hello world!');
const server = await app.listen(0);
console.log(`Listening at http://localhost:${server.address().port}/`);
}
main().catch(console.error);
Running tests
Tests are provided by eslint and mocha.
npm install
npm test