6.0.3 • Published 1 year ago
typed-emitters v6.0.3

Install
npm install typed-emittersSingle-event emitter
Create emitter
import { createTypedEmitter } from "typed-emitters";const emitter =
createTypedEmitter<
[string, number] // Multiple args are supported
>();
// Share the public interface
export const event = this.emitter.source;emitter.emit("Test string", 1); // Type checkingListen to events
// The source object allows listening to events but not emitting them
// The type of args is [string, number]
event.addListener((...args) => {
console.log(args);
});Multi-event emitter
Create emitter
import { createTypedMultiEmitter } from "typed-emitters";const emitter =
createTypedMultiEmitter<{
'type1': [number],
'type2' [string, number]
}>();
// Share the public interface
export const events = this.emitter.source;emitter.emit("type1", 1); // Type checking
emitter.emit("type2", "Test string", 1); // Type checkingListen to events
// 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);
});Unsubscribing
// Option 1
event.removeListener(yourListener);
// Option 2
const dispose = event.addListener((...args) => {
console.log(args);
});
dispose();Other
Check if an emitter has any listeners
emitter.checkForListeners();emitter.checkForListeners("type1");Removing all listeners
emitter.removeAllListeners();emitter.removeAllListeners("type1");Exported types
TypedEventEmitter<Args>TypedEventSource<Args>TypedMultiEventEmitter<ArgsByEventName>TypedMultiEventSource<ArgsByEventName>
6.0.1
1 year ago
6.0.0
1 year ago
6.0.3
1 year ago
6.0.2
1 year ago
5.0.0
3 years ago
4.1.0
3 years ago
4.0.0
3 years ago
4.1.1
3 years ago
3.0.5
3 years ago
3.0.4
3 years ago
3.0.3
3 years ago
3.0.2
3 years ago
3.0.1
3 years ago
3.0.0
3 years ago
2.0.2
3 years ago
2.0.1
3 years ago
2.0.0
3 years ago
1.0.7
3 years ago
1.0.5
3 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.2
3 years ago
1.0.1
3 years ago
1.0.0
3 years ago