Simple / Typed / Universal / Lightweight / Dependency-free event emitters
npm install typed-emitters!typed-emitters | Simple, Typed, Universal, Lightweight, Dependency-free event emitters
``bash`
npm install typed-emitters
`typescript`
import { createTypedEmitter } from "typed-emitters";
`typescript
const emitter =
createTypedEmitter<
[string, number] // Multiple args are supported
>();
// Share the public interface
export const event = this.emitter.source;
`
`typescript`
emitter.emit("Test string", 1); // Type checking
`typescript
// The source object allows listening to events but not emitting them
// The type of args is [string, number]
event.addListener((...args) => {
console.log(args);
});
`
`typescript`
import { createTypedMultiEmitter } from "typed-emitters";
`typescript
const emitter =
createTypedMultiEmitter<{
'type1': [number],
'type2' [string, number]
}>();
// Share the public interface
export const events = this.emitter.source;
`
`typescript`
emitter.emit("type1", 1); // Type checking
emitter.emit("type2", "Test string", 1); // Type checking
`typescript
// The source object allows listening to events but not emitting them
// The type of value is number
events.addListener("type1", (value) => {
console.log(value);
});
// The type of args is [string, number]
events.addListener("type2", (...args) => {
console.log(args);
});
`
`typescript
// Option 1
event.removeListener(yourListener);
// Option 2
const dispose = event.addListener((...args) => {
console.log(args);
});
dispose();
`
`typescript`
emitter.checkForListeners();
`typescript`
emitter.checkForListeners("type1");
`typescript`
emitter.removeAllListeners();
`typescript`
emitter.removeAllListeners("type1");
- TypedEventEmitterTypedEventSource
- TypedMultiEventEmitter
- TypedMultiEventSource
-