tav-ui
Version:
35 lines (33 loc) • 764 B
JavaScript
function mitt(all) {
all = all || /* @__PURE__ */ new Map();
return {
all,
on(type, handler) {
const handlers = all?.get(type);
const added = handlers && handlers.push(handler);
if (!added) {
all?.set(type, [handler]);
}
},
off(type, handler) {
const handlers = all?.get(type);
if (handlers) {
handlers.splice(handlers.indexOf(handler) >>> 0, 1);
}
},
emit(type, evt) {
;
(all?.get(type) || []).slice().forEach((handler) => {
handler(evt);
});
(all?.get("*") || []).slice().forEach((handler) => {
handler(type, evt);
});
},
clear() {
this.all.clear();
}
};
}
export { mitt };
//# sourceMappingURL=mitt2.mjs.map