@muds/event
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

@muds/event

NPM @muds/event License: MIT

Overview

@muds/event is the core event signal library for muds, the modular microframework for interactive data-oriented systems. It provides the event emitter and listener interface, as well as several useful event implementations.

Usage

npm install --save @muds/event
import { Event, EventMultiplexer } from '@muds/event';

const listener = (...msg) => console.log(...msg);
const event1 = Event.create(); // simple event
const event2 = Event.create();

event1.addListener(listener);
event1.emit('hello', 'world'); // log "hello world"
event1.removeListener(listener);

const multiplexer = new EventMultiplexer(); // multiplex events into a single event
multiplexer.addListener(listener);
multiplexer.add(event1, (event) => [1, ...event]); // add an event with event mapping
multiplexer.add(event2, (event) => [2, ...event]);
event1.emit('hello', 'again'); // log "1 hello again"
event2.emit('bye'); // log "2 bye"
import { OnAnimationFrame } from '@muds/event';

const listener = (delta) => console.log(`delta: ${delta} ms`);
const event = new OnAnimationFrame(); // emit event with delta time on each requestAnimationFrame callback
event.addListener(listener);
event.start(); // log "delta: 16ms" periodically
// event.pause(); to stop

License

This repository and the code inside it is licensed under the MIT License. Read LICENSE for more information.

Package Sidebar

Install

npm i @muds/event

Weekly Downloads

1

Version

0.1.0

License

MIT

Unpacked Size

15.8 kB

Total Files

20

Last publish

Collaborators

  • andykswong