diff --git a/server/src/index.ts b/server/src/index.ts index aa1888f..845ed11 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -6,6 +6,7 @@ import { RageFW_CefArgs, RageFW_CefEvent, RageFW_CefReturn, + _CefEventHasArgs, _ClientEventHasArgs, _ServerEventHasArgs, RageFW_ClientEvent, @@ -128,7 +129,9 @@ class Player { public triggerBrowser( player: PlayerMp, eventName: EventName, - args: RageFW_CefArgs, + ...args: _CefEventHasArgs extends true + ? [RageFW_CefArgs] + : [] ): Promise> { return rpc.callBrowsers(player, eventName, args) } diff --git a/server/src/types/browser.ts b/server/src/types/browser.ts index 2f30f49..e6430ce 100644 --- a/server/src/types/browser.ts +++ b/server/src/types/browser.ts @@ -9,3 +9,10 @@ export type RageFW_CefArgs = Parameters< export type RageFW_CefReturn = ReturnType< RageFW_ICustomCefEvent[K] > + +export type _CefEventHasArgs = + keyof RageFW_ICustomCefEvent extends never + ? false + : Parameters[0] extends undefined + ? false + : true