@enea-entertainment/signal
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Signal

A small and fast signals library. Adds support for asynchronous signals.

Based on type-signals


Installation

npm install --save-dev @enea-entertainment/signal

NPM


Usage

type IHandlerParam = (a: number, b: string)=> void;

function handler(a: number, b: string)
{
    console.log(a, b);
}

function asyncHandler(resolve: ()=> void, a: number, b: string)
{
    console.log(a, b);

    resolve();
}

async function test()
{
    const signal = new Signal<IHandlerParam>();

    signal.add(handler);

    signal.dispatch(1, 'foo');

    // ----------------------------

    const asyncSignal = new AsyncSignal<IHandlerParam>();

    asyncSignal.add(asyncHandler);

    await asyncSignal.dispatch(1, 'foo');
}

test();

Disabling the signal

const signal = new Signal<IHandlerParam>();

signal.add(handler);

signal.dispatch(1, 'foo');

signal.enabled = false;

signal.dispatch(2, 'bar'); // won't be called

License

MIT, see LICENSE for details.

Package Sidebar

Install

npm i @enea-entertainment/signal

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

20.3 kB

Total Files

6

Last publish

Collaborators

  • enea-entertainment