From 79011e0fd2226092c18072cc3c5ae8d4c62f9a7b Mon Sep 17 00:00:00 2001 From: Oleksandr Honcharov <0976053529@ukr.net> Date: Thu, 13 Jun 2024 00:02:10 +0300 Subject: [PATCH] added browser trigger on client/server | added copyright on server --- client/src/index.ts | 24 ++++++++++++++++++++++-- client/src/types/browser.ts | 13 +++++++++++++ client/src/types/index.ts | 3 ++- server/src/index.ts | 15 +++++++++++++++ server/src/types/browser.ts | 11 +++++++++++ server/src/types/index.ts | 1 + 6 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 client/src/types/browser.ts create mode 100644 server/src/types/browser.ts diff --git a/client/src/index.ts b/client/src/index.ts index fd3dd5c..49472f5 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -10,7 +10,11 @@ import { RageFW_ClientServerEventReturn, RageFW_ClientEventArguments, RageFW_ClientEventReturn, + RageFW_CefEvent, + RageFW_CefArgs, + RageFW_CefReturn, } from './types' + import type { RageFW_ICustomClientEvent } from 'rage-fw-shared-types' class Client { @@ -28,6 +32,10 @@ class Client { ): void { rpc.unregister(eventName) } +} + +class Player { + public browser: BrowserMp | undefined public trigger( eventName: EventName, @@ -35,15 +43,27 @@ class Client { ): Promise> { return rpc.call>(eventName, args) } -} -class Player { public triggerServer( eventName: EventName, args: RageFW_ClientServerEventArguments, ): Promise> { return rpc.callServer(eventName, args) } + + public triggerBrowser( + eventName: EventName, + args: RageFW_CefArgs, + ): Promise> { + if (!this.browser) + throw new Error('You need to initialize browser first!') + return rpc.callBrowser(this.browser, eventName, args) + } + + public registerBrowser(browser: BrowserMp) { + this.browser = browser + return browser + } } export const fw = { diff --git a/client/src/types/browser.ts b/client/src/types/browser.ts new file mode 100644 index 0000000..3856e4c --- /dev/null +++ b/client/src/types/browser.ts @@ -0,0 +1,13 @@ +/// + +import type { RageFW_ICustomCefEvent } from 'rage-fw-shared-types' + +export type RageFW_CefEvent = keyof RageFW_ICustomCefEvent + +export type RageFW_CefArgs = Parameters< + RageFW_ICustomCefEvent[K] +> + +export type RageFW_CefReturn = ReturnType< + RageFW_ICustomCefEvent[K] +> diff --git a/client/src/types/index.ts b/client/src/types/index.ts index c60bed8..86863ca 100644 --- a/client/src/types/index.ts +++ b/client/src/types/index.ts @@ -1,2 +1,3 @@ export * from './client' -export * from './server' \ No newline at end of file +export * from './server' +export * from './browser' diff --git a/server/src/index.ts b/server/src/index.ts index 7ee181b..6fd3688 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -3,6 +3,9 @@ import rpc from 'rage-rpc' import Logger from './logger' import { + RageFW_CefArgs, + RageFW_CefEvent, + RageFW_CefReturn, RageFW_ClientEvent, RageFW_ClientEventArguments, RageFW_ClientEventReturn, @@ -115,6 +118,14 @@ class Player { ): Promise> { return rpc.callClient(player, eventName, args) } + + public triggerBrowser( + player: PlayerMp, + eventName: EventName, + args: RageFW_CefArgs, + ): Promise> { + return rpc.callBrowsers(player, eventName, args) + } } export const fw = { @@ -124,3 +135,7 @@ export const fw = { log: new Logger(), }, } + +fw.system.log.info( + 'Working on Rage Framework. RageFW © Powered by Entity Seven Group', +) diff --git a/server/src/types/browser.ts b/server/src/types/browser.ts new file mode 100644 index 0000000..2f30f49 --- /dev/null +++ b/server/src/types/browser.ts @@ -0,0 +1,11 @@ +import type { RageFW_ICustomCefEvent } from 'rage-fw-shared-types' + +export type RageFW_CefEvent = keyof RageFW_ICustomCefEvent + +export type RageFW_CefArgs = Parameters< + RageFW_ICustomCefEvent[K] +> + +export type RageFW_CefReturn = ReturnType< + RageFW_ICustomCefEvent[K] +> diff --git a/server/src/types/index.ts b/server/src/types/index.ts index 7636a1f..86863ca 100644 --- a/server/src/types/index.ts +++ b/server/src/types/index.ts @@ -1,2 +1,3 @@ export * from './client' export * from './server' +export * from './browser'