mirror of
https://github.com/rilaxik/fivem-rpc.git
synced 2026-09-28 01:29:13 +00:00
docs: bump readme.md
This commit is contained in:
@@ -2,37 +2,64 @@
|
|||||||
|
|
||||||
is an all-in-one package with asynchronous RPC implementation for FiveM servers in JS/TS
|
is an all-in-one package with asynchronous RPC implementation for FiveM servers in JS/TS
|
||||||
|
|
||||||
|
## Motivation
|
||||||
|
|
||||||
|
The idea was to create an extensible package, with various features to simplify the development process and provide as much comfort as possible. Inspired by usage of [altv-xrpc](https://github.com/xxshady/altv-xrpc)
|
||||||
|
|
||||||
|
## Packages
|
||||||
|
|
||||||
|
| Package | Docs |
|
||||||
|
| ----------------------------------------------------- | -------------------------------------- |
|
||||||
|
| [`@entityseven/fivem-rpc`](rpc) | [API reference](rpc/readme.md) |
|
||||||
|
| [`@entityseven/fivem-rpc-shared-types`](shared-types) | [Typing setup](shared-types/readme.md) |
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pnpm i @entityseven/fivem-rpc
|
npm i @entityseven/fivem-rpc
|
||||||
```
|
pnpm add @entityseven/fivem-rpc
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn add @entityseven/fivem-rpc
|
yarn add @entityseven/fivem-rpc
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun add @entityseven/fivem-rpc
|
bun add @entityseven/fivem-rpc
|
||||||
```
|
```
|
||||||
|
|
||||||
It is highly recommended to also install additional package for enhanced typing
|
Optional, for typed event names, arguments and results ([typing setup](shared-types/readme.md)):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pnpm i @entityseven/fivem-rpc-shared-types -D
|
npm i -D @entityseven/fivem-rpc-shared-types
|
||||||
|
pnpm add -D @entityseven/fivem-rpc-shared-types
|
||||||
|
yarn add -D @entityseven/fivem-rpc-shared-types
|
||||||
|
bun add -d @entityseven/fivem-rpc-shared-types
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
## Quick start
|
||||||
yarn add @entityseven/fivem-rpc-shared-types --dev
|
|
||||||
|
Create exactly one instance per environment and import it from your own module, not from the library. The client needs one even if it only relays between server and webview.
|
||||||
|
|
||||||
|
```ts
|
||||||
|
// server/rpc.ts
|
||||||
|
import { createRPC } from '@entityseven/fivem-rpc'
|
||||||
|
export const rpc = createRPC({ env: 'server' })
|
||||||
|
|
||||||
|
// client/rpc.ts
|
||||||
|
import { createRPC } from '@entityseven/fivem-rpc'
|
||||||
|
export const rpc = createRPC({ env: 'client' })
|
||||||
|
|
||||||
|
// webview/rpc.ts
|
||||||
|
import { createRPC } from '@entityseven/fivem-rpc'
|
||||||
|
export const rpc = createRPC({ env: 'webview' })
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
Listen on one side, emit from the other and await the listener's return value:
|
||||||
bun add @entityseven/fivem-rpc-shared-types -d
|
|
||||||
|
```ts
|
||||||
|
// server
|
||||||
|
rpc.onClient('ping', (player, message) => `pong: ${message} (from ${player})`)
|
||||||
|
|
||||||
|
// client
|
||||||
|
const reply = await rpc.emitServer('ping', 'hello')
|
||||||
```
|
```
|
||||||
|
|
||||||
## Docs
|
All methods: [API reference](rpc/readme.md).
|
||||||
|
|
||||||
Can be found in [/rpc/readme.md](https://github.com/rilaxik/fivem-rpc/blob/master/rpc/readme.md)
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|||||||
+5
-45
@@ -1,48 +1,8 @@
|
|||||||
# FiveM RPC
|
# FiveM RPC
|
||||||
|
|
||||||
is an all-in package with asynchronous RPC implementation for RageMP servers in JS/TS. [Extra info](https://github.com/rilaxik/fivem-rpc/blob/master/readme.md)
|
is an all-in package with asynchronous RPC implementation for RageMP servers in JS/TS
|
||||||
|
|
||||||
# Motivation
|
Installation, quick start and package overview: [main readme](../readme.md). Typed events: [shared-types](../shared-types/readme.md).
|
||||||
|
|
||||||
The idea was to create an extensible package, with various features to simplify the development process and provide as much comfort as possible. Inspired by usage of [altv-xrpc](https://github.com/xxshady/altv-xrpc)
|
|
||||||
|
|
||||||
# Installation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm i @entityseven/fivem-rpc
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn add @entityseven/fivem-rpc
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun add @entityseven/fivem-rpc
|
|
||||||
```
|
|
||||||
|
|
||||||
It is highly recommended to also install additional package for enhanced typing
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm i @entityseven/fivem-rpc-shared-types -D
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn add @entityseven/fivem-rpc-shared-types --dev
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun add @entityseven/fivem-rpc-shared-types -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
FiveM RPC is meant to be a singletone per environment. This means you _must create only one_ `RPCFactory` per your server/client/web. This also enables modifying `const rpc` to your needs, adding new methods or variables by forcing you to import it from file instead of library reference
|
|
||||||
|
|
||||||
```ts
|
|
||||||
// lib/rpc.ts
|
|
||||||
import { RPCFactory } from '@entityseven/fivem-rpc'
|
|
||||||
export const rpc = new RPCFactory(/* options */).get()
|
|
||||||
```
|
|
||||||
|
|
||||||
# Docs
|
# Docs
|
||||||
|
|
||||||
@@ -91,7 +51,7 @@ Type: 'event'
|
|||||||
Data: [<data>]
|
Data: [<data>]
|
||||||
```
|
```
|
||||||
|
|
||||||
## Server ([source](https://github.com/rilaxik/fivem-rpc/blob/master/rpc/src/core/server.ts))
|
## Server ([source](src/core/server.ts))
|
||||||
|
|
||||||
### onClient
|
### onClient
|
||||||
|
|
||||||
@@ -205,7 +165,7 @@ rpc.onNativeEvent('playerJoining', (source, oldId) => {
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
## Client ([source](https://github.com/rilaxik/fivem-rpc/blob/master/rpc/src/core/client.ts))
|
## Client ([source](src/core/client.ts))
|
||||||
|
|
||||||
### onServer
|
### onServer
|
||||||
|
|
||||||
@@ -329,7 +289,7 @@ Sets or removes focus and cursor from own webview
|
|||||||
rpc.setWebviewFocus(true /* focus */, true /* show cursor */)
|
rpc.setWebviewFocus(true /* focus */, true /* show cursor */)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Webview ([source](https://github.com/rilaxik/fivem-rpc/blob/master/rpc/src/core/webview.ts))
|
## Webview ([source](src/core/webview.ts))
|
||||||
|
|
||||||
### onClient
|
### onClient
|
||||||
|
|
||||||
|
|||||||
+2
-12
@@ -1,20 +1,10 @@
|
|||||||
# FiveM RPC Shared Types
|
# FiveM RPC Shared Types
|
||||||
|
|
||||||
### [Docs & Info](https://github.com/rilaxik/fivem-rpc/blob/master/readme.md)
|
### [Docs & Info](../readme.md)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
```bash
|
See the [main readme](../readme.md#installation).
|
||||||
pnpm i @entityseven/fivem-rpc-shared-types -D
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn add @entityseven/fivem-rpc-shared-types --dev
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bun add @entityseven/fivem-rpc-shared-types -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user