1.1.0 • Published 5 years ago

pkg-events v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

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