summary refs log tree commit diff
path: root/src/util/plugin/Plugin.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/plugin/Plugin.ts')
-rw-r--r--src/util/plugin/Plugin.ts9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/util/plugin/Plugin.ts b/src/util/plugin/Plugin.ts
index 96e05843..1c86a006 100644
--- a/src/util/plugin/Plugin.ts
+++ b/src/util/plugin/Plugin.ts
@@ -6,7 +6,14 @@ type PluginEvents = {
 	loaded: () => void;
 };
 
-export class Plugin extends (EventEmitter as new () => TypedEventEmitter<PluginEvents>) {
+//this doesnt work, check later:
+ //(EventEmitter as new () => TypedEventEmitter<PluginEvents>) {
+export class Plugin extends EventEmitter {
+	private _untypedOn = this.on
+	private _untypedEmit = this.emit
+	public on = <K extends keyof PluginEvents>(event: K, listener: PluginEvents[K]): this => this._untypedOn(event, listener)
+	public emit = <K extends keyof PluginEvents>(event: K, ...args: Parameters<PluginEvents[K]>): boolean => this._untypedEmit(event, ...args)
+
 	async init() {
 		// insert default config into database?
 	}