This repository has been archived on 2024-10-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
rage-framework-rpc/src/server.ts
T
2024-09-15 19:59:27 +01:00

31 lines
864 B
TypeScript

import { utils } from './utils.ts'
import { state } from './index.ts'
import type { RPCData } from './types.ts'
export class Server {
public async listen(player: any, data: string) {
const parsedData = utils.parseData(data)
await this.executeLocal(player, parsedData)
}
private async executeLocal(player: any, data: RPCData) {
const fnResponse = await state[data.eventName](...data.data)
const response = {
data: fnResponse,
...data,
}
this.sendResponseToClient(player, response)
}
private sendResponseToClient(player: any, data: RPCData) {
const eventName = utils.generateResponseEventName(data.uuid)
const prepareForTransfer = utils.stringifyData(data)
player.call(eventName, prepareForTransfer)
}
}
export const server = new Server()