From c94bab24f274b42d90faa9ffe637ceb4e5bae285 Mon Sep 17 00:00:00 2001 From: Oleksandr Honcharov <0976053529@ukr.net> Date: Thu, 13 Jun 2024 04:51:13 +0300 Subject: [PATCH] client triggerBrowser typization improvement --- client/src/index.ts | 5 ++++- client/src/types/browser.ts | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/src/index.ts b/client/src/index.ts index f210b77..fd67598 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -15,6 +15,7 @@ import { RageFW_CefEvent, RageFW_CefArgs, RageFW_CefReturn, + _CefEventHasArgs, } from './types' import type { RageFW_ICustomClientEvent } from 'rage-fw-shared-types' @@ -59,7 +60,9 @@ class Player { public triggerBrowser( eventName: EventName, - args: RageFW_CefArgs, + ...args: _CefEventHasArgs extends true + ? [RageFW_CefArgs] + : [] ): Promise> { if (!this.browser) throw new Error('You need to initialize browser first!') diff --git a/client/src/types/browser.ts b/client/src/types/browser.ts index 3856e4c..5f03b4c 100644 --- a/client/src/types/browser.ts +++ b/client/src/types/browser.ts @@ -11,3 +11,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