1.1.0 • Published 5 years ago
pkg-events v1.1.0
Wrapper over standard nodejs events
Installation
add to root .npmrc
file
@xroom-app:registry=https://npm.pkg.github.com/xroom-app
then run from command line
npm i @xroom-app/pkg-events
Usage example
const { createEvent, createEventSystem } = require('@xroom-app/pkg-events')
/**
* @template T
*
* @typedef {import('@xroom-app/pkg-events').Event<T>} Event
*/
const events = {
/** @type {Event<{ roomId: string, options: Record<string, any> }>} */
roomCreated: createEvent(),
/** @type {Event<{ roomId: string }>} */
roomRemoved: createEvent(),
}
const eventSystem = createEventSystem(Object.values(events))
eventSystem.on(events.roomCreated, ({ roomId }) => console.log(`Created a room with id ${roomId}`))
eventSystem.on(events.roomRemoved, ({ roomId }) => console.log(`Removed a room with id ${roomId}`))
eventSystem.emit(events.roomCreated, { roomId: 'foobar', options: {} })
eventSystem.emit(events.roomRemoved, { roomId: 'foobar' })
1.1.0
5 years ago