Navigator Prefabricating Marinates
    Wondering what’s next for npm?Check out our public roadmap! »

    @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

    Install

    npm i @servie/events

    DownloadsWeekly Downloads

    41,360

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    21 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar