|
||
---|---|---|
.. | ||
src | ||
.prettierrc.yaml | ||
index.d.ts | ||
LICENSE | ||
package.json | ||
readme.md | ||
tsconfig.json | ||
tsup.config.ts |
Rage-FW-RPC
is an all-in package with asynchronous RPC implementation for RageMP servers in JS/TS
Installation
npm i rage-fw-rpc
pnpm i rage-fw-rpc
yarn add rage-fw-rpc
Import installed package and initialize rpc:
// lib/rpc.js
import { Rpc } from 'rage-fw-rpc'
export const rpc = new Rpc(/* options */)
Features
- Type-safe events via TS generics, avoiding type wrappers
- Built-in logging options for each environment
- Error-safe developer mode for browser
- Calls can receive response from called environments via Promises (browser -> server -> browser, etc.)
- Actual human-readable errors
Docs
Extended version with details coming soon
register
Registers a callback function for a specified event
rpc.register('playerJoin', (player) => {
console.log(`Connected: ${player.socialClub}`)
})
unregister
Unregisters callback function for a specified event
rpc.unregister('playerDamage')
callClient
Calls a client-side event from server or browser
From browser:
rpc.callClient('updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
From server (requires player):
rpc.callClient(player, 'updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
callServer
Calls a server-side event from browser or client
rpc.callServer('updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
callBrowser
Calls a server-side event from browser or client
From client:
rpc.callBrowser('updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
From client (requires player):
rpc.callBrowser(player, 'updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
call
Calls an event in current environment
rpc.call('triggerSomething').then(response => {
console.log(`Received: ${response}`)
})