mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-03-13 13:39:48 +01:00
31 lines
896 B
TypeScript
31 lines
896 B
TypeScript
// Copyright 2025, Command Line Inc.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
import { EventEmitter } from "events";
|
|
|
|
interface GlobalEvents {
|
|
"windows-updated": () => void; // emitted whenever a window is opened/closed
|
|
}
|
|
|
|
class GlobalEventEmitter extends EventEmitter {
|
|
emit<K extends keyof GlobalEvents>(event: K, ...args: Parameters<GlobalEvents[K]>): boolean {
|
|
return super.emit(event, ...args);
|
|
}
|
|
|
|
on<K extends keyof GlobalEvents>(event: K, listener: GlobalEvents[K]): this {
|
|
return super.on(event, listener);
|
|
}
|
|
|
|
once<K extends keyof GlobalEvents>(event: K, listener: GlobalEvents[K]): this {
|
|
return super.once(event, listener);
|
|
}
|
|
|
|
off<K extends keyof GlobalEvents>(event: K, listener: GlobalEvents[K]): this {
|
|
return super.off(event, listener);
|
|
}
|
|
}
|
|
|
|
const globalEvents = new GlobalEventEmitter();
|
|
|
|
export { globalEvents };
|