diff --git a/cef/package.json b/cef/package.json index c8847f2..8c62251 100644 --- a/cef/package.json +++ b/cef/package.json @@ -11,7 +11,7 @@ "build": "tsup" }, "dependencies": { - "ragefw-rpc": "workspace:^" + "rage-fw-rpc": "workspace:^" }, "peerDependencies": { "@ragempcommunity/types-cef": "^2.1.8", diff --git a/cef/src/index.ts b/cef/src/index.ts index 19b942f..bbddb27 100644 --- a/cef/src/index.ts +++ b/cef/src/index.ts @@ -1,6 +1,6 @@ -import rpc from 'rage-rpc' +import { Rpc } from 'rage-fw-rpc' -import { +import type { _CefEventHasArgs, _ClientEventHasArgs, _ServerEventHasArgs, @@ -18,11 +18,18 @@ import { class Cef { private _debugMode: boolean = false + private _rpc: Rpc = new Rpc() + + constructor() {} set debug(debug: boolean) { this._debugMode = debug } + get rpc(): Rpc { + return this._rpc + } + public register( eventName: EventName, callback: RageFW_CefCallback, @@ -32,11 +39,11 @@ class Cef { } if ('mp' in window) { - rpc.register(eventName, callback) + this._rpc.register(eventName, callback) } } - public trigger( + public async trigger( eventName: EventName, ...args: _CefEventHasArgs extends true ? [RageFW_CefArgs] @@ -47,7 +54,7 @@ class Cef { } if ('mp' in window) { - return rpc.call(eventName, args) + return await this._rpc.call(eventName, args) } return Promise.reject( @@ -55,7 +62,9 @@ class Cef { ) } - public triggerServer( + public async triggerServer< + EventName extends keyof RageFW_ICustomServerEvent, + >( eventName: EventName, ...args: _ServerEventHasArgs extends true ? [RageFW_ServerArgs] @@ -66,7 +75,7 @@ class Cef { } if ('mp' in window) { - return rpc.callServer(eventName, args) + return await this._rpc.callServer(eventName, args) } return Promise.reject( @@ -74,7 +83,9 @@ class Cef { ) } - public triggerClient( + public async triggerClient< + EventName extends keyof RageFW_ICustomClientEvent, + >( eventName: EventName, ...args: _ClientEventHasArgs extends true ? [RageFW_ClientArgs] @@ -85,7 +96,7 @@ class Cef { } if ('mp' in window) { - return rpc.callClient(eventName, args) + return await this._rpc.callClient(eventName, args) } return Promise.reject( diff --git a/cli/package.json b/cli/package.json index 408aeba..c093d09 100644 --- a/cli/package.json +++ b/cli/package.json @@ -16,13 +16,11 @@ ], "dependencies": { "@inquirer/prompts": "^5.0.5", - "axios": "^1.7.2", + "ky": "^1.7.2", "chalk": "4.1.2", - "git-clone": "^0.2.0", "yargs": "^17.7.2" }, "devDependencies": { - "@types/git-clone": "^0.2.4", "@types/node": "^20.14.2", "@types/yargs": "^17.0.32", "prettier": "^3.3.2", diff --git a/client/package.json b/client/package.json index 9d159dc..e97d440 100644 --- a/client/package.json +++ b/client/package.json @@ -11,7 +11,7 @@ "build": "tsup" }, "dependencies": { - "ragefw-rpc": "workspace:^" + "rage-fw-rpc": "workspace:^" }, "peerDependencies": { "@ragempcommunity/types-client": "^2.1.8", diff --git a/client/src/core/client.ts b/client/src/core/client.ts index f43e0ed..550c35b 100644 --- a/client/src/core/client.ts +++ b/client/src/core/client.ts @@ -1,20 +1,33 @@ -import rpc from 'rage-rpc' +import { Rpc } from 'rage-fw-rpc' -import { RageFW_ClientCallback, RageFW_ClientEvent } from '../types' +import type { + RageFW_ClientArgs, + RageFW_ClientCallback, + RageFW_ClientEvent, +} from '../types' export class Client { + private _rpc: Rpc = new Rpc() + + get rpc(): Rpc { + return this._rpc + } + public register( eventName: EventName, callback: RageFW_ClientCallback, ): void { - rpc.register(eventName, async data => { - return await callback(data) - }) + this._rpc.register( + eventName, + async (data: RageFW_ClientArgs) => { + return await callback(data) + }, + ) } public unregister( eventName: EventName, ): void { - rpc.unregister(eventName) + this._rpc.unregister(eventName) } } diff --git a/client/src/core/player.ts b/client/src/core/player.ts index 9d879a9..7281d5b 100644 --- a/client/src/core/player.ts +++ b/client/src/core/player.ts @@ -1,4 +1,4 @@ -import rpc from 'rage-rpc' +import { Rpc } from 'rage-fw-rpc' import type { RageFW_ICustomClientEvent } from 'rage-fw-shared-types' import { @@ -16,15 +16,19 @@ import { } from '../types' export class Player { + private _rpc: Rpc = new Rpc() public browser: BrowserMp | undefined + get rpc(): Rpc { + return this._rpc + } public trigger( eventName: EventName, ...args: _ClientEventHasArgs extends true ? [RageFW_ClientArgs] : [] ): Promise> { - return rpc.call>(eventName, args) + return this._rpc.call(eventName, args) } public triggerServer( @@ -33,7 +37,7 @@ export class Player { ? [RageFW_ClientServerArgs] : [] ): Promise> { - return rpc.callServer(eventName, args) + return this._rpc.callServer(eventName, args) } public triggerBrowser( @@ -44,6 +48,6 @@ export class Player { ): Promise> { if (!this.browser) throw new Error('You need to initialize browser first') - return rpc.callBrowser(this.browser, eventName, args) + return this._rpc.callBrowser(this.browser, eventName, args) } } diff --git a/rpc/package.json b/rpc/package.json index 470b958..3beb004 100644 --- a/rpc/package.json +++ b/rpc/package.json @@ -1,5 +1,5 @@ { - "name": "ragefw-rpc", + "name": "rage-fw-rpc", "description": "RageFW RPC", "version": "0.2.1", "scripts": { diff --git a/server/package.json b/server/package.json index 05c2ea7..016452a 100644 --- a/server/package.json +++ b/server/package.json @@ -11,7 +11,7 @@ "build": "tsup" }, "dependencies": { - "ragefw-rpc": "workspace:^" + "rage-fw-rpc": "workspace:^" }, "peerDependencies": { "@ragempcommunity/types-server": "^2.1.8", diff --git a/server/src/core/player.ts b/server/src/core/player.ts index 07f799e..d0022e8 100644 --- a/server/src/core/player.ts +++ b/server/src/core/player.ts @@ -1,6 +1,6 @@ -import rpc from 'rage-rpc' +import { Rpc } from 'rage-fw-rpc' -import { +import type { _CefEventHasArgs, _ClientEventHasArgs, RageFW_CefArgs, @@ -12,6 +12,12 @@ import { } from '../types' export class Player { + private _rpc: Rpc = new Rpc() + + get rpc(): Rpc { + return this._rpc + } + public triggerClient( player: PlayerMp, eventName: EventName, @@ -19,7 +25,7 @@ export class Player { ? [RageFW_ServerClientArgs] : [] ): Promise> { - return rpc.callClient(player, eventName, args) + return this._rpc.callClient(player, eventName, args) } public triggerBrowser( @@ -29,6 +35,6 @@ export class Player { ? [RageFW_CefArgs] : [] ): Promise> { - return rpc.callBrowsers(player, eventName, args) + return this._rpc.callBrowser(player, eventName, args) } } diff --git a/server/src/core/server.ts b/server/src/core/server.ts index 464aca1..4f99a37 100644 --- a/server/src/core/server.ts +++ b/server/src/core/server.ts @@ -1,8 +1,8 @@ -import rpc from 'rage-rpc' +import { Rpc } from 'rage-fw-rpc' import { RageFW_ICustomServerEvent } from 'rage-fw-shared-types' import { nativeEvents } from '../native.events' -import { +import type { _ServerEventHasArgs, RageFW_ServerArgs, RageFW_ServerCallback, @@ -13,6 +13,12 @@ import { } from '../types' export class Server { + private _rpc: Rpc = new Rpc() + + get rpc(): Rpc { + return this._rpc + } + private isNativeEvent(eventName: string): eventName is keyof IServerEvents { return nativeEvents.includes(eventName) } @@ -21,8 +27,9 @@ export class Server { eventName: EventName, callback: RageFW_ServerCallbackCustom, ): void { - rpc.register( + this._rpc.register( eventName, + // fixme async (args: RageFW_ServerArgs, info) => { await callback([info.player as PlayerMp, ...args]) }, @@ -80,7 +87,7 @@ export class Server { private unregisterCustom( eventName: EventName, ): void { - rpc.unregister(eventName) + this._rpc.unregister(eventName) } private unregisterNative( @@ -105,6 +112,6 @@ export class Server { ? [RageFW_ServerArgs] : [] ): Promise> { - return rpc.call>(eventName, args) + return this._rpc.call(eventName, args) } }