@servie/events
TypeScript icon, indicating that this package has built-in type declarations

3.0.0 • Public • Published

Events

NPM version NPM downloads Build status Build coverage Bundle size

Tiny type-safe event emitter.

Installation

npm install @servie/events --save

Usage

import { Emitter, once, ALL_EVENTS } from "@servie/events";

// Define an events interface using keys & argument tuples.
interface Events {
  test: [boolean];
  other: [string];
}

// Initialize an `Emitter` using your `Events` interface.
const events = new Emitter<Events>();

// Add or remove listeners.
const listener = (...args) => console.log(args);
const off = events.on("test", listener);

// Emit an event.
events.emit("test", true);

// Listen to _all_ events, i.e. for debugging.
const eachListener = ({ type, args }) => console.log(type, args);
const off = events.on(ALL_EVENTS, eachListener);

// "Once" utility.
const runOnce = (...args) => console.log(args);
once(events, "test", runOnce);

// Remove the listener.
off();

TypeScript

This project is written using TypeScript and publishes the definitions directly to NPM.

License

MIT

Dependencies (0)

    Dev Dependencies (6)

    Package Sidebar

    Install

    npm i @servie/events

    Weekly Downloads

    82,207

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    21 kB

    Total Files

    9

    Last publish

    Collaborators

    • blakeembrey