- jsdoc typo fixes
- readme
This commit is contained in:
Danya H 2024-10-27 16:36:50 +00:00
parent 44d985f498
commit 39e6455271
2 changed files with 97 additions and 4 deletions

93
rpc/readme.md Normal file
View File

@ -0,0 +1,93 @@
# Rage-FW-RPC
is an all-in package with asynchronous RPC implementation for RageMP servers in JS/TS
# Installation
``` shell
npm i rage-fw-rpc
```
```shell
pnpm i rage-fw-rpc
```
```shell
yarn add rage-fw-rpc
```
Import installed package and initialize rpc:
```ts
// lib/rpc.js
import { Rpc } from 'rage-fw-rpc'
export const rpc = new Rpc(/* options */)
```
# Features
- Type-safe events via [TS generics](https://www.typescriptlang.org/docs/handbook/2/generics.html), 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
```ts
rpc.register('playerJoin', (player) => {
console.log(`Connected: ${player.socialClub}`)
})
```
## unregister
Unregisters callback function for a specified event
```ts
rpc.unregister('playerDamage')
```
## callClient
Calls a client-side event from server or browser
From browser:
```ts
rpc.callClient('updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
```
From server (requires player):
```ts
rpc.callClient(player, 'updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
```
## callServer
Calls a server-side event from browser or client
```ts
rpc.callServer('updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
```
## callBrowser
Calls a server-side event from browser or client
From client:
```ts
rpc.callBrowser('updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
```
From client (requires player):
```ts
rpc.callBrowser(player, 'updatePlayerData', ['argument']).then(response => {
console.log(`Received: ${response}`)
})
```
## call
Calls an event in current environment
```ts
rpc.call('triggerSomething').then(response => {
console.log(`Received: ${response}`)
})
```

View File

@ -263,7 +263,7 @@ class Rpc extends Wrapper {
} }
/** /**
* Calls a server-side event from server or client * Calls a server-side event from browser or client
* *
* @template Arguments - An array of argument types to be passed to the server event * @template Arguments - An array of argument types to be passed to the server event
* @template EventName - A string representing the server event name or union of names * @template EventName - A string representing the server event name or union of names
@ -438,8 +438,8 @@ class Rpc extends Wrapper {
* @returns {Promise<Return>} A promise resolving to the return value of the event * @returns {Promise<Return>} A promise resolving to the return value of the event
* *
* @example * @example
* // Calls an event on browser without specifying a player * // Calls an event in current environment
* callBrowser<[], string, number>('getSomething').then(response => { * call<[], string, number>('getSomething').then(response => {
* console.log(`Received: ${response}`) // ^ number * console.log(`Received: ${response}`) // ^ number
* }) * })
*/ */