@resolid/event
v0.2.1
Published
Lightweight, Typed Event System for TypeScript
Readme
Lightweight, Typed Event System for TypeScript
Documentation | Framework Bundle
A lightweight, fully typed event emitter for modern TypeScript projects. Provides a clean API, async emission, and zero dependencies — perfect for libraries and frameworks.
Feature
- Fully typed with TypeScript, no any.
- Provides simple
on,off,once, andemitAPIs. - Supports async emission via
emitAsync. - Removes listeners automatically for
oncehandlers. - Zero dependencies and minimal footprint.
Installation
pnpm add @resolid/event
# or
npm install @resolid/event
# or
yarn add @resolid/event
# or
bun add @resolid/eventUsage
Basic
import { Emitter } from "@resolid/event";
const emitter = new Emitter();
emitter.on("hello", (name: string) => {
console.log(`Hello, ${name}!`);
});
emitter.emit("hello", "World"); // -> "Hello, World!"Once Listener
import { Emitter } from "@resolid/event";
const emitter = Emitter();
emitter.once("ready", (msg: string) => {
console.log(msg);
});
emitter.emit("ready", "First call"); // -> "First call"
emitter.emit("ready", "Second call"); // won't trigger againAsync Emission
import { Emitter } from "your-package-name";
const emitter = Emitter();
emitter.on("done", () => {
console.log("Event handled (after all sync code)");
});
console.log("Before emitAsync");
emitter.emitAsync("done");
console.log("After emitAsync");
// output
// Before emitAsync
// After emitAsync
// Event handled (after all sync code)License
MIT License (MIT). Please see LICENSE for more information.
