valia
Version:
A runtime data validator in TypeScript with advanced type inference, built-in validation functions, and seamless integration for server and client environments.
32 lines (31 loc) • 942 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.eventsManager = eventsManager;
function eventsManager() {
return ({
listeners: new Map(),
on(event, callback) {
if (!this.listeners.has(event)) {
this.listeners.set(event, []);
}
this.listeners.get(event).push(callback);
},
emit(event, ...args) {
const callbacks = this.listeners.get(event);
if (!callbacks)
return;
for (const callback of callbacks) {
callback(...args);
}
},
off(event, callback) {
const listeners = this.listeners.get(event);
if (!listeners)
return;
const index = listeners.indexOf(callback);
if (index !== -1) {
listeners.splice(index, 1);
}
}
});
}