ts-promisify-event-emitter
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

ts-promisify-event-emitter

Another implementation of Event Emitter but with Promises

travis npm version

Install

$ npm install ts-promisify-event-emitter

Usage

Basic usage:

import EventEmitterPromisified, {Message, Callback} from 'ts-promisify-event-emitter';
 
// Result type
interface IUser {
  name: string;
  lastname: string;
}
// Query type
interface IQuery {
  id: string;
}
 
async function getUserFromDatabase(id: string): Promise<IUser> {
  // do something async
  return {
    name: 'Test',
    lastname: 'Testing'
  }
}
 
const events = new EventEmitterPromisified<IQuery, IUser>();
 
const callback: Callback<IQuery, IUser> = async (message: Message<IQuery>): Promise<IUser> => {
  const user: IUser = await getUserFromDatabase(message.payload.id);
  return user;
}
 
events.on('getUser', callback);
 
(async function start() {
  const query: Message<IQuery> = {payload: {id: "ID-1234"}};
  const [user] = await events.emit('getUser', query);
  console.log(`The user is: Name=${user.name}, lastname=${user.lastname}.`);
})();

Deno

import EventEmitterPromisified, {Message, Callback} from 'https://alvarobg.com/deno/ts_promisfy_event_emitter/1.1.10/index.ts';
 
 

Contributing

All contributions are welcome.

License

MIT

Package Sidebar

Install

npm i ts-promisify-event-emitter

Weekly Downloads

11

Version

1.2.0

License

ISC

Unpacked Size

39.6 kB

Total Files

10

Last publish

Collaborators

  • alvarob