- types now use namespace to avoid bloating
- moved items for further usage into data folder
This commit is contained in:
2024-10-28 15:20:43 +00:00
parent 3a4fe19df0
commit 588bb42d04
8 changed files with 61 additions and 109 deletions
+5 -9
View File
@@ -1,10 +1,6 @@
import { Rpc } from '@entityseven/rage-fw-rpc'
import type {
RageFW_ClientArgs,
RageFW_ClientCallback,
RageFW_ClientEvent,
} from '../types'
import type * as T from '../types'
export class Client {
private _rpc: Rpc = new Rpc()
@@ -13,19 +9,19 @@ export class Client {
return this._rpc
}
public register<EventName extends RageFW_ClientEvent>(
public register<EventName extends T.RageFW_ClientEvent>(
eventName: EventName,
callback: RageFW_ClientCallback<EventName>,
callback: T.RageFW_ClientCallback<EventName>,
): void {
this._rpc.register(
eventName,
async (data: RageFW_ClientArgs<EventName>) => {
async (data: T.RageFW_ClientArgs<EventName>) => {
return await callback(data)
},
)
}
public unregister<EventName extends RageFW_ClientEvent>(
public unregister<EventName extends T.RageFW_ClientEvent>(
eventName: EventName,
): void {
this._rpc.unregister(eventName)
+12 -24
View File
@@ -1,19 +1,7 @@
import { Rpc } from '@entityseven/rage-fw-rpc'
import type { RageFW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types'
import {
_CefEventHasArgs,
_ClientEventHasArgs,
_ServerEventHasArgs,
RageFW_CefArgs,
RageFW_CefEvent,
RageFW_CefReturn,
RageFW_ClientArgs,
RageFW_ClientReturn,
RageFW_ClientServerEvent,
RageFW_ClientServerArgs,
RageFW_ClientServerReturn,
} from '../types'
import type * as T from '../types'
export class Player {
private _rpc: Rpc = new Rpc()
@@ -24,28 +12,28 @@ export class Player {
}
public trigger<EventName extends keyof RageFW_ICustomClientEvent>(
eventName: EventName,
...args: _ClientEventHasArgs<EventName> extends true
? [RageFW_ClientArgs<EventName>]
...args: T._ClientEventHasArgs<EventName> extends true
? [T.RageFW_ClientArgs<EventName>]
: []
): Promise<RageFW_ClientReturn<EventName>> {
): Promise<T.RageFW_ClientReturn<EventName>> {
return this._rpc.call(eventName, args)
}
public triggerServer<EventName extends RageFW_ClientServerEvent>(
public triggerServer<EventName extends T.RageFW_ClientServerEvent>(
eventName: EventName,
...args: _ServerEventHasArgs<EventName> extends true
? [RageFW_ClientServerArgs<EventName>]
...args: T._ServerEventHasArgs<EventName> extends true
? [T.RageFW_ClientServerArgs<EventName>]
: []
): Promise<RageFW_ClientServerReturn<EventName>> {
): Promise<T.RageFW_ClientServerReturn<EventName>> {
return this._rpc.callServer(eventName, args)
}
public triggerBrowser<EventName extends RageFW_CefEvent>(
public triggerBrowser<EventName extends T.RageFW_CefEvent>(
eventName: EventName,
...args: _CefEventHasArgs<EventName> extends true
? [RageFW_CefArgs<EventName>]
...args: T._CefEventHasArgs<EventName> extends true
? [T.RageFW_CefArgs<EventName>]
: []
): Promise<RageFW_CefReturn<EventName>> {
): Promise<T.RageFW_CefReturn<EventName>> {
if (!this.browser)
throw new Error('You need to initialize browser first')
return this._rpc.callBrowser(this.browser, eventName, args)