feat(core): desktop multiple server support (#8979)

This commit is contained in:
EYHN
2024-12-03 05:51:09 +00:00
parent af81c95b85
commit 8963826463
137 changed files with 2052 additions and 1694 deletions

View File

@@ -33,7 +33,7 @@ export class EventBus {
});
for (const handler of handlers.values()) {
this.on(handler.event.id, handler.handler);
this.on(handler.event, handler.handler);
}
}
@@ -41,23 +41,25 @@ export class EventBus {
return this.parent?.root ?? this;
}
on<T>(id: string, listener: (event: FrameworkEvent<T>) => void) {
if (!this.listeners[id]) {
this.listeners[id] = [];
on<T>(event: FrameworkEvent<T>, listener: (event: T) => void) {
if (!this.listeners[event.id]) {
this.listeners[event.id] = [];
}
this.listeners[id].push(listener);
const off = this.parent?.on(id, listener);
this.listeners[event.id].push(listener);
const off = this.parent?.on(event, listener);
return () => {
this.off(id, listener);
this.off(event, listener);
off?.();
};
}
off<T>(id: string, listener: (event: FrameworkEvent<T>) => void) {
if (!this.listeners[id]) {
off<T>(event: FrameworkEvent<T>, listener: (event: T) => void) {
if (!this.listeners[event.id]) {
return;
}
this.listeners[id] = this.listeners[id].filter(l => l !== listener);
this.listeners[event.id] = this.listeners[event.id].filter(
l => l !== listener
);
}
emit<T>(event: FrameworkEvent<T>, payload: T) {