mirror of
https://github.com/cool-team-official/cool-admin-vue.git
synced 2025-12-17 09:12:51 +00:00
31 lines
554 B
TypeScript
31 lines
554 B
TypeScript
import _mitt from "mitt";
|
|
|
|
const mitt = _mitt();
|
|
|
|
class Mitt {
|
|
id: number;
|
|
|
|
constructor(id?: number) {
|
|
this.id = id || 0;
|
|
}
|
|
|
|
send(type: "emit" | "off" | "on", name: string, ...args: any[]) {
|
|
// @ts-ignore
|
|
mitt[type](`${this.id}__${name}`, ...args);
|
|
}
|
|
|
|
emit(name: string, ...args: any[]) {
|
|
this.send("emit", name, ...args);
|
|
}
|
|
|
|
off(name: string, handler: (...args: any[]) => void) {
|
|
this.send("off", name, handler);
|
|
}
|
|
|
|
on(name: string, handler: (...args: any[]) => void) {
|
|
this.send("on", name, handler);
|
|
}
|
|
}
|
|
|
|
export { Mitt, mitt };
|