2024-10-28 15:10:00 +00:00
|
|
|
import { Rpc } from '@entityseven/rage-fw-rpc'
|
2024-06-18 20:03:33 +00:00
|
|
|
|
2024-10-28 12:11:24 +00:00
|
|
|
import type {
|
|
|
|
RageFW_ClientArgs,
|
|
|
|
RageFW_ClientCallback,
|
|
|
|
RageFW_ClientEvent,
|
|
|
|
} from '../types'
|
2024-06-18 20:03:33 +00:00
|
|
|
|
|
|
|
export class Client {
|
2024-10-28 12:11:24 +00:00
|
|
|
private _rpc: Rpc = new Rpc()
|
|
|
|
|
|
|
|
get rpc(): Rpc {
|
|
|
|
return this._rpc
|
|
|
|
}
|
|
|
|
|
2024-06-18 20:03:33 +00:00
|
|
|
public register<EventName extends RageFW_ClientEvent>(
|
|
|
|
eventName: EventName,
|
|
|
|
callback: RageFW_ClientCallback<EventName>,
|
|
|
|
): void {
|
2024-10-28 12:11:24 +00:00
|
|
|
this._rpc.register(
|
|
|
|
eventName,
|
|
|
|
async (data: RageFW_ClientArgs<EventName>) => {
|
|
|
|
return await callback(data)
|
|
|
|
},
|
|
|
|
)
|
2024-06-18 20:03:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public unregister<EventName extends RageFW_ClientEvent>(
|
|
|
|
eventName: EventName,
|
|
|
|
): void {
|
2024-10-28 12:11:24 +00:00
|
|
|
this._rpc.unregister(eventName)
|
2024-06-18 20:03:33 +00:00
|
|
|
}
|
|
|
|
}
|