All Projects → serviejs → events

serviejs / events

Licence: MIT License
Tiny type-safe event emitter

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to events

tiny-typed-emitter
Fully type-checked NodeJS EventEmitter
Stars: ✭ 96 (+284%)
Mutual labels:  events, eventemitter, event-emitter
tsee
Typed EventEmitter implemented with tsargs
Stars: ✭ 22 (-12%)
Mutual labels:  events, eventemitter, event-emitter
spa-bus
🔥Tools for multilevel components to pass values in any SPA
Stars: ✭ 15 (-40%)
Mutual labels:  events, event-emitter
Eventemitter
Evented JavaScript for the browser
Stars: ✭ 3,107 (+12328%)
Mutual labels:  events, eventemitter
EventEmitter
Simple EventEmitter with multiple listeners
Stars: ✭ 19 (-24%)
Mutual labels:  events, event-emitter
Mitt
🥊 Tiny 200 byte functional event emitter / pubsub.
Stars: ✭ 6,945 (+27680%)
Mutual labels:  tiny, eventemitter
micro-typed-events
The smallest, most convenient typesafe TS event emitter you'll ever need
Stars: ✭ 39 (+56%)
Mutual labels:  events, event-emitter
trainmanjs
TrainmanJS - Cross-Origin Communication Library
Stars: ✭ 16 (-36%)
Mutual labels:  events, eventemitter
event
📆 Strictly typed event emitter with asynciterator support
Stars: ✭ 30 (+20%)
Mutual labels:  events, event-emitter
dead-simple
💀💡 Dead simple PubSub and EventEmitter in JavaScript
Stars: ✭ 21 (-16%)
Mutual labels:  events, eventemitter
telephone-ts
Telephone-ts: The "Event Emitter-less" TypeScript Event Architecture.
Stars: ✭ 22 (-12%)
Mutual labels:  events, event-emitter
event-emitter
Event Emitter module for Nest framework (node.js) 🦋
Stars: ✭ 102 (+308%)
Mutual labels:  events, event-emitter
node-await-event-emitter
await events library like EventEmitter
Stars: ✭ 19 (-24%)
Mutual labels:  events, event-emitter
event
The implementation of the pattern observer
Stars: ✭ 45 (+80%)
Mutual labels:  events
events
Event emitter with asynchronous events.
Stars: ✭ 12 (-52%)
Mutual labels:  events
Quizzie
Open Sourced Quiz Portal which can be used for any event / competition with a custom leaderboard.
Stars: ✭ 31 (+24%)
Mutual labels:  events
certificates
🎓 Generate event certificates easily
Stars: ✭ 50 (+100%)
Mutual labels:  events
uuix
A tiny (<1KB) and fast UUID (v4) generator for Crystal
Stars: ✭ 17 (-32%)
Mutual labels:  tiny
JavaUltimateTools
A Large Repository Of Awesome Code For Java.
Stars: ✭ 24 (-4%)
Mutual labels:  events
Compact-Unity-Events
UnityEvents drawer with collapsing, reordering and compact UX
Stars: ✭ 41 (+64%)
Mutual labels:  events

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].