1.2.0 • Published 4 years ago

ts-promisify-event-emitter v1.2.0

Weekly downloads
4
License
ISC
Repository
github
Last release
4 years ago

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

1.2.0

4 years ago

1.1.9

4 years ago

1.1.10

4 years ago

1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.5

5 years ago

1.0.2

5 years ago