diff --git a/browser/src/core/browser.ts b/browser/src/core/browser.ts index 3a4ee07..67b40c9 100644 --- a/browser/src/core/browser.ts +++ b/browser/src/core/browser.ts @@ -1,9 +1,9 @@ -import { Helper } from './helper' +import { FW_Helper } from './helper' import { rpc } from './rpc' import type * as T from '../types' /** Browser-side interactions */ -export class Browser extends Helper { +export class FW_Browser extends FW_Helper { constructor() { super() } @@ -29,7 +29,7 @@ export class Browser extends Helper { * * @param eventName - The name of the event to register * @param callback - The callback function to be executed when the event is triggered - * @returns {Browser} The current browser instance, enabling method chaining + * @returns {FW_Browser} The current browser instance, enabling method chaining * * @example * // Registering an event @@ -39,10 +39,10 @@ export class Browser extends Helper { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public register( + public register( eventName: EventName, - callback: T.RageFW_BrowserCallback, - ): Browser { + callback: T.FW_BrowserCallback, + ): FW_Browser { this.log_('register', eventName, callback) rpc.register< @@ -58,7 +58,7 @@ export class Browser extends Helper { * Unregisters a browser event, removing the associated callback * * @param eventName - The name of the event to unregister - * @returns {Browser} The current browser instance, enabling method chaining + * @returns {FW_Browser} The current browser instance, enabling method chaining * * @example * // Unregistering an event @@ -66,9 +66,9 @@ export class Browser extends Helper { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public unregister( + public unregister( eventName: EventName, - ): Browser { + ): FW_Browser { rpc.unregister(eventName) return this @@ -93,18 +93,18 @@ export class Browser extends Helper { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async trigger( + public async trigger( eventName: EventName, ...args: T._BrowserEventHasArgs extends true - ? [T.RageFW_BrowserArgs] + ? [T.FW_BrowserArgs] : [] - ): Promise> { + ): Promise> { this.log_('[RPC](trigger):', eventName, ...args) return await rpc.call< typeof args, EventName, - T.RageFW_BrowserReturn + T.FW_BrowserReturn >(eventName, args) } @@ -127,18 +127,18 @@ export class Browser extends Helper { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async triggerServer( + public async triggerServer( eventName: EventName, ...args: T._ServerEventHasArgs extends true - ? [T.RageFW_ServerArgs] + ? [T.FW_ServerArgs] : [] - ): Promise> { + ): Promise> { this.log_('[RPC](triggerServer):', eventName, ...args) return await rpc.callServer< typeof args, EventName, - T.RageFW_ServerReturn + T.FW_ServerReturn >(eventName, args) } @@ -161,18 +161,18 @@ export class Browser extends Helper { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async triggerClient( + public async triggerClient( eventName: EventName, ...args: T._ClientEventHasArgs extends true - ? [T.RageFW_ClientArgs] + ? [T.FW_ClientArgs] : [] - ): Promise> { + ): Promise> { this.log_('[RPC](triggerClient):', eventName, ...args) return await rpc.callClient< typeof args, EventName, - T.RageFW_ClientReturn + T.FW_ClientReturn >(eventName, args) } } diff --git a/browser/src/core/helper.ts b/browser/src/core/helper.ts index d861710..3e98045 100644 --- a/browser/src/core/helper.ts +++ b/browser/src/core/helper.ts @@ -1,4 +1,4 @@ -export class Helper { +export class FW_Helper { protected debugLogs_: boolean = false protected customLogger_: | undefined diff --git a/browser/src/index.ts b/browser/src/index.ts index 9cab4e1..2c29cc8 100644 --- a/browser/src/index.ts +++ b/browser/src/index.ts @@ -1,4 +1,4 @@ -import { Browser, rpc } from './core' +import { FW_Browser, rpc } from './core' /** * Package used on a browser-side of your Rage:MP Server @@ -7,10 +7,12 @@ import { Browser, rpc } from './core' */ export const fw = { /** Browser-side interactions */ - event: new Browser(), + event: new FW_Browser(), /** ``rage-fw-rpc`` instance used under the hood. It is highly recommended to use this one if you need it instead of creating a new instance */ rpc, } ;(async () => { - await fw.event.triggerClient('cefReady') + await fw.event.triggerClient( + 'cefReady' as Parameters[0], + ) })() diff --git a/browser/src/types/browser.ts b/browser/src/types/browser.ts index ea66151..5947c39 100644 --- a/browser/src/types/browser.ts +++ b/browser/src/types/browser.ts @@ -1,40 +1,41 @@ -import type { RageFW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' -export type { RageFW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' +export type { FW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available browser event names * These only include custom events */ -export type RageFW_BrowserEvent = keyof RageFW_ICustomBrowserEvent +export type FW_BrowserEvent = keyof FW_ICustomBrowserEvent /** * Array of arguments of an event you pass as a generic * These only include custom browser events */ -export type RageFW_BrowserArgs = Parameters< - RageFW_ICustomBrowserEvent[K] +export type FW_BrowserArgs = Parameters< + FW_ICustomBrowserEvent[K] > /** * Return type of event you pass as a generic * These only include custom browser events */ -export type RageFW_BrowserReturn = ReturnType< - RageFW_ICustomBrowserEvent[K] +export type FW_BrowserReturn = ReturnType< + FW_ICustomBrowserEvent[K] > /** * Callback (function) of event you pass as a generic * These only include custom browser events */ -export type RageFW_BrowserCallback = - (...args: RageFW_BrowserArgs) => Promise> +export type FW_BrowserCallback = ( + ...args: FW_BrowserArgs +) => Promise> export type _BrowserEventHasArgs< - EventName extends keyof RageFW_ICustomBrowserEvent, -> = keyof RageFW_ICustomBrowserEvent extends never + EventName extends keyof FW_ICustomBrowserEvent, +> = keyof FW_ICustomBrowserEvent extends never ? false - : Parameters[0] extends undefined + : Parameters[0] extends undefined ? false : true diff --git a/browser/src/types/client.ts b/browser/src/types/client.ts index 9dd30ee..c5bf61e 100644 --- a/browser/src/types/client.ts +++ b/browser/src/types/client.ts @@ -1,41 +1,32 @@ -import type { RageFW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' -export type { RageFW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' - -/** - * Union of all internal client event names - * These only include internal events - */ -export type RageFW_InternalEvent = 'cefReady' +export type { FW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available client event names * These only include custom events and some internals for RageFW */ -export type RageFW_ClientEvent = - | keyof RageFW_ICustomClientEvent - | RageFW_InternalEvent +export type FW_ClientEvent = keyof FW_ICustomClientEvent /** * Array of arguments of event you pass as a generic * These only include custom client events */ -export type RageFW_ClientArgs = Parameters< - RageFW_ICustomClientEvent[K] +export type FW_ClientArgs = Parameters< + FW_ICustomClientEvent[K] > /** * Return type of event you pass as a generic * These only include custom client events */ -export type RageFW_ClientReturn = ReturnType< - RageFW_ICustomClientEvent[K] +export type FW_ClientReturn = ReturnType< + FW_ICustomClientEvent[K] > -export type _ClientEventHasArgs< - EventName extends keyof RageFW_ICustomClientEvent, -> = keyof RageFW_ICustomClientEvent extends never - ? false - : Parameters[0] extends undefined - ? false - : true +export type _ClientEventHasArgs = + keyof FW_ICustomClientEvent extends never + ? false + : Parameters[0] extends undefined + ? false + : true diff --git a/browser/src/types/server.ts b/browser/src/types/server.ts index 2652428..97f9dd6 100644 --- a/browser/src/types/server.ts +++ b/browser/src/types/server.ts @@ -1,33 +1,32 @@ -import type { RageFW_ICustomServerEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomServerEvent } from '@entityseven/rage-fw-shared-types' -export type { RageFW_ICustomServerEvent } from '@entityseven/rage-fw-shared-types' +export type { FW_ICustomServerEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available server event names * These only include custom events */ -export type RageFW_ServerEvent = keyof RageFW_ICustomServerEvent +export type FW_ServerEvent = keyof FW_ICustomServerEvent /** * Array of arguments of event you pass as a generic * These only include custom server events */ -export type RageFW_ServerArgs = Parameters< - RageFW_ICustomServerEvent[K] +export type FW_ServerArgs = Parameters< + FW_ICustomServerEvent[K] > /** * Return type of event you pass as a generic * These only include custom server events */ -export type RageFW_ServerReturn = ReturnType< - RageFW_ICustomServerEvent[K] +export type FW_ServerReturn = ReturnType< + FW_ICustomServerEvent[K] > -export type _ServerEventHasArgs< - EventName extends keyof RageFW_ICustomServerEvent, -> = keyof RageFW_ICustomServerEvent extends never - ? false - : Parameters[0] extends undefined - ? false - : true +export type _ServerEventHasArgs = + keyof FW_ICustomServerEvent extends never + ? false + : Parameters[0] extends undefined + ? false + : true diff --git a/client/src/core/client.ts b/client/src/core/client.ts index bb1ba4a..df6e0e3 100644 --- a/client/src/core/client.ts +++ b/client/src/core/client.ts @@ -1,9 +1,9 @@ import { rpc } from './rpc' -import { Middleware } from './middleware' +import { FW_Middleware } from './middleware' import type * as T from '../types' /** Client-side interactions */ -export class Client { +export class FW_Client { /** * Registers a client event with an associated callback * @@ -11,7 +11,7 @@ export class Client { * @param callback - The callback function to be executed when the event is triggered * @param [options] - Optional settings for callback execution * @param [options.middlewares] - Middleware functions to be checked before the callback executes - * @returns {Client} The current client instance, enabling method chaining + * @returns {FW_Client} The current client instance, enabling method chaining * * @example * // Registering an event @@ -40,13 +40,13 @@ export class Client { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public register( + public register( eventName: EventName, - callback: T.RageFW_ClientCallback, + callback: T.FW_ClientCallback, options?: { - middlewares?: T.RageFW_MiddlewareOptions + middlewares?: T.FW_MiddlewareOptions }, - ): Client { + ): FW_Client { rpc.register< Parameters, ReturnType | Promise, @@ -54,7 +54,7 @@ export class Client { >(eventName, async (...data) => { if (!options?.middlewares) return await callback(...data) - await Middleware.process(options.middlewares, callback, data) + await FW_Middleware.process(options.middlewares, callback, data) }) return this @@ -72,15 +72,11 @@ export class Client { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public unregister( + public unregister( eventName: EventName, - ): Client { + ): FW_Client { rpc.unregister(eventName) return this } } - -// new Client() -// .register('customClientEvent', async (a, b) => true) -// .unregister('customClientEvent') diff --git a/client/src/core/logger.ts b/client/src/core/logger.ts index 16dc37e..9316805 100644 --- a/client/src/core/logger.ts +++ b/client/src/core/logger.ts @@ -1,7 +1,7 @@ /** * Used to log to a client in-game console */ -export class Logger { +export class FW_Logger { /** * Informational logs. Colored in white * diff --git a/client/src/core/middleware.ts b/client/src/core/middleware.ts index 9c08fbf..57e0977 100644 --- a/client/src/core/middleware.ts +++ b/client/src/core/middleware.ts @@ -1,12 +1,12 @@ import type * as T from '../types' -export class Middleware { +export class FW_Middleware { constructor() {} - private static async execute( - middlewares: T.RageFW_MiddlewareFunction[], - args: T.RageFW_ClientArgs, - ): Promise { + private static async execute( + middlewares: T.FW_MiddlewareFunction[], + args: T.FW_ClientArgs, + ): Promise { for (let i = 0; i < middlewares.length; i++) { const result = await middlewares[i](...args) @@ -21,20 +21,20 @@ export class Middleware { } } - public static async process( - middlewareOptions: T.RageFW_MiddlewareOptions, - callback: T.RageFW_ClientCallback, - args: T.RageFW_ClientArgs, + public static async process( + middlewareOptions: T.FW_MiddlewareOptions, + callback: T.FW_ClientCallback, + args: T.FW_ClientArgs, ) { if (Array.isArray(middlewareOptions)) { - const middlewaresResponse = await Middleware.execute( + const middlewaresResponse = await FW_Middleware.execute( middlewareOptions, args, ) if (middlewaresResponse.success) return await callback(...args) } else { - const middlewaresResponse = await Middleware.execute( + const middlewaresResponse = await FW_Middleware.execute( middlewareOptions.executables, args, ) diff --git a/client/src/core/player.ts b/client/src/core/player.ts index 40b3589..4fb73d9 100644 --- a/client/src/core/player.ts +++ b/client/src/core/player.ts @@ -2,7 +2,7 @@ import { rpc } from './rpc' import type * as T from '../types' /** Handles event manipulations that require player to be present in context */ -export class Player { +export class FW_Player { private _browser: BrowserMp | undefined = undefined /** @@ -32,16 +32,16 @@ export class Player { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async trigger( + public async trigger( eventName: EventName, ...args: T._ClientEventHasArgs extends true - ? [T.RageFW_ClientArgs] + ? [T.FW_ClientArgs] : [] - ): Promise> { + ): Promise> { return await rpc.call< typeof args, EventName, - T.RageFW_ClientReturn + T.FW_ClientReturn >(eventName, args) } @@ -64,16 +64,16 @@ export class Player { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async triggerServer( + public async triggerServer( eventName: EventName, ...args: T._ServerEventHasArgs extends true - ? [T.RageFW_ServerArgs] + ? [T.FW_ServerArgs] : [] - ): Promise> { + ): Promise> { return await rpc.callServer< typeof args, EventName, - T.RageFW_ClientServerReturn + T.FW_ClientServerReturn >(eventName, args) } @@ -96,19 +96,19 @@ export class Player { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async triggerBrowser( + public async triggerBrowser( eventName: EventName, ...args: T._BrowserEventHasArgs extends true - ? [T.RageFW_BrowserArgs] + ? [T.FW_BrowserArgs] : [] - ): Promise> { + ): Promise> { if (!this._browser) throw new Error('You need to initialize browser first') return await rpc.callBrowser< typeof args, EventName, - T.RageFW_BrowserReturn + T.FW_BrowserReturn >(eventName, args) } } diff --git a/client/src/types/browser.ts b/client/src/types/browser.ts index 27292f7..dc196b3 100644 --- a/client/src/types/browser.ts +++ b/client/src/types/browser.ts @@ -1,29 +1,29 @@ /// -import type { RageFW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available browser event names callable from client * These only include custom events */ -export type RageFW_BrowserEvent = keyof RageFW_ICustomBrowserEvent +export type FW_BrowserEvent = keyof FW_ICustomBrowserEvent /** * Array of arguments for an event, name of which you pass as a generic * These only include custom events */ -export type RageFW_BrowserArgs = Parameters< - RageFW_ICustomBrowserEvent[K] +export type FW_BrowserArgs = Parameters< + FW_ICustomBrowserEvent[K] > -export type RageFW_BrowserReturn = ReturnType< - RageFW_ICustomBrowserEvent[K] +export type FW_BrowserReturn = ReturnType< + FW_ICustomBrowserEvent[K] > export type _BrowserEventHasArgs< - EventName extends keyof RageFW_ICustomBrowserEvent, -> = keyof RageFW_ICustomBrowserEvent extends never + EventName extends keyof FW_ICustomBrowserEvent, +> = keyof FW_ICustomBrowserEvent extends never ? false - : Parameters[0] extends undefined + : Parameters[0] extends undefined ? false : true diff --git a/client/src/types/client.ts b/client/src/types/client.ts index dca0f87..a64b3ac 100644 --- a/client/src/types/client.ts +++ b/client/src/types/client.ts @@ -1,24 +1,22 @@ /// -import type { RageFW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' -export type { RageFW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' +export type { FW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available client event names * These include custom and system events */ -export type RageFW_ClientEvent = - | keyof RageFW_ICustomClientEvent - | keyof IClientEvents +export type FW_ClientEvent = keyof FW_ICustomClientEvent | keyof IClientEvents /** * Array of arguments for an event, name of which you pass as a generic * These include custom and system events */ -export type RageFW_ClientArgs = - K extends keyof RageFW_ICustomClientEvent - ? Parameters +export type FW_ClientArgs = + K extends keyof FW_ICustomClientEvent + ? Parameters : K extends keyof IClientEvents ? Parameters : never @@ -27,9 +25,9 @@ export type RageFW_ClientArgs = * Return type for an event, name of which you pass as a generic * These include custom and system events */ -export type RageFW_ClientReturn = - K extends keyof RageFW_ICustomClientEvent - ? ReturnType +export type FW_ClientReturn = + K extends keyof FW_ICustomClientEvent + ? ReturnType : K extends keyof IClientEvents ? ReturnType : void @@ -38,17 +36,16 @@ export type RageFW_ClientReturn = * Callback (function) for an event, name of which you pass as a generic * These include custom and system events */ -export type RageFW_ClientCallback = ( - ...args: RageFW_ClientArgs -) => Promise> +export type FW_ClientCallback = ( + ...args: FW_ClientArgs +) => Promise> /** * */ -export type _ClientEventHasArgs< - EventName extends keyof RageFW_ICustomClientEvent, -> = keyof RageFW_ICustomClientEvent extends never - ? false - : Parameters[0] extends undefined - ? false - : true +export type _ClientEventHasArgs = + keyof FW_ICustomClientEvent extends never + ? false + : Parameters[0] extends undefined + ? false + : true diff --git a/client/src/types/middleware.ts b/client/src/types/middleware.ts index 102cabd..ecbbe0b 100644 --- a/client/src/types/middleware.ts +++ b/client/src/types/middleware.ts @@ -1,26 +1,25 @@ import type * as T from './client' -export type RageFW_MiddlewareResponse = +export type FW_MiddlewareResponse = | { success: boolean message?: string } | boolean -export type RageFW_MiddlewareResponseInternal = { +export type FW_MiddlewareResponseInternal = { success: boolean message?: string id?: number } -export type RageFW_MiddlewareFunction = - ( - ...args: T.RageFW_ClientArgs - ) => Promise +export type FW_MiddlewareFunction = ( + ...args: T.FW_ClientArgs +) => Promise -export type RageFW_MiddlewareOptions = - | RageFW_MiddlewareFunction[] +export type FW_MiddlewareOptions = + | FW_MiddlewareFunction[] | { - executables: RageFW_MiddlewareFunction[] + executables: FW_MiddlewareFunction[] onError: (error: string) => unknown } diff --git a/client/src/types/server.ts b/client/src/types/server.ts index 3cc520e..cb18844 100644 --- a/client/src/types/server.ts +++ b/client/src/types/server.ts @@ -1,38 +1,37 @@ /// import type { - RageFW_ICustomClientEvent, - RageFW_ICustomServerEvent, + FW_ICustomClientEvent, + FW_ICustomServerEvent, } from '@entityseven/rage-fw-shared-types' /** * Union of all available server event names callable from client * These only include custom events */ -export type RageFW_ServerEvent = keyof RageFW_ICustomServerEvent +export type FW_ServerEvent = keyof FW_ICustomServerEvent /** * Array of arguments for an event, name of which you pass as a generic * These only include custom events */ -export type RageFW_ServerArgs = - K extends keyof RageFW_ICustomServerEvent - ? Parameters +export type FW_ServerArgs = + K extends keyof FW_ICustomServerEvent + ? Parameters : never /** * Return type for an event, name of which you pass as a generic * These only include custom events */ -export type RageFW_ClientServerReturn = - K extends keyof RageFW_ICustomServerEvent - ? ReturnType +export type FW_ClientServerReturn = + K extends keyof FW_ICustomServerEvent + ? ReturnType : never -export type _ServerEventHasArgs< - EventName extends keyof RageFW_ICustomServerEvent, -> = keyof RageFW_ICustomClientEvent extends never - ? false - : Parameters[0] extends undefined - ? false - : true +export type _ServerEventHasArgs = + keyof FW_ICustomClientEvent extends never + ? false + : Parameters[0] extends undefined + ? false + : true diff --git a/rpc/index.d.ts b/rpc/index.d.ts index 26e56be..cdc84f4 100644 --- a/rpc/index.d.ts +++ b/rpc/index.d.ts @@ -1,25 +1,8 @@ export {} -interface Mp { - trigger(event: string, data?: any): void - events: { - add(event: string, data: any): void - call(event: string, data: any): void - callRemote(event: string, data: any): void - remove(event: string): void - } - joaat?: unknown - game: { - joaat?: unknown - } - console: { - logInfo: (...args: unknown[]) => void - } -} +declare var global: Record unknown> declare global { - const mp: Mp - const global: Record unknown> interface Window { [p: string]: any } diff --git a/rpc/package.json b/rpc/package.json index 3e104f8..5a3edcd 100644 --- a/rpc/package.json +++ b/rpc/package.json @@ -2,8 +2,11 @@ "private": false, "name": "@entityseven/rage-fw-rpc", "version": "0.2.5", - "main": "dist/index.js", - "types": "dist/src/index.d.ts", + "main": "src/index.ts", + "publishConfig": { + "main": "dist/index.js", + "types": "dist/index.d.ts" + }, "scripts": { "build": "tsup", "start": "npx ./dist create" diff --git a/rpc/src/browser.ts b/rpc/src/browser.ts index 3929f8a..099a665 100644 --- a/rpc/src/browser.ts +++ b/rpc/src/browser.ts @@ -1,3 +1,5 @@ +/// + import { Wrapper } from './wrapper' import { Environment, diff --git a/rpc/src/client.ts b/rpc/src/client.ts index e28e1cb..6b6a75a 100644 --- a/rpc/src/client.ts +++ b/rpc/src/client.ts @@ -1,3 +1,5 @@ +/// + import { Wrapper } from './wrapper' import { Environment, diff --git a/rpc/src/server.ts b/rpc/src/server.ts index 1e2bb9c..ffaaae6 100644 --- a/rpc/src/server.ts +++ b/rpc/src/server.ts @@ -1,3 +1,5 @@ +/// + import { Wrapper } from './wrapper' import { type PlayerMp, diff --git a/rpc/tsconfig.json b/rpc/tsconfig.json index 2bc7661..54a172b 100644 --- a/rpc/tsconfig.json +++ b/rpc/tsconfig.json @@ -12,7 +12,7 @@ "sourceMap": true, }, "include": [ - "./index.d.ts" + "src" ], "extends": ["../tsconfig.ragefw.json"] } \ No newline at end of file diff --git a/server/src/core/logger.ts b/server/src/core/logger.ts index 8c4f86f..08cd505 100644 --- a/server/src/core/logger.ts +++ b/server/src/core/logger.ts @@ -3,7 +3,7 @@ import winston, { format } from 'winston' const { timestamp, printf, colorize } = format /** Used to log in a server console */ -export class Logger { +export class FW_Logger { private format = printf(({ message, level }) => { return `[${new Date().toLocaleTimeString()}] [${level}]: ${message}` }) diff --git a/server/src/core/middleware.ts b/server/src/core/middleware.ts index c319a03..d1a5ea8 100644 --- a/server/src/core/middleware.ts +++ b/server/src/core/middleware.ts @@ -1,12 +1,12 @@ import type * as T from '../types' -export class Middleware { +export class FW_Middleware { constructor() {} - private static async execute( - middlewares: T.RageFW_MiddlewareFunction[], - args: T.RageFW_ServerArgs, - ): Promise { + private static async execute( + middlewares: T.FW_MiddlewareFunction[], + args: T.FW_ServerArgs, + ): Promise { for (let i = 0; i < middlewares.length; i++) { const result = await middlewares[i](...args) @@ -21,20 +21,20 @@ export class Middleware { } } - public static async process( - middlewareOptions: T.RageFW_MiddlewareOptions, - callback: T.RageFW_ServerCallback, - args: T.RageFW_ServerArgs, + public static async process( + middlewareOptions: T.FW_MiddlewareOptions, + callback: T.FW_ServerCallback, + args: T.FW_ServerArgs, ) { if (Array.isArray(middlewareOptions)) { - const middlewaresResponse = await Middleware.execute( + const middlewaresResponse = await FW_Middleware.execute( middlewareOptions, args, ) if (middlewaresResponse.success) return await callback(...args) } else { - const middlewaresResponse = await Middleware.execute( + const middlewaresResponse = await FW_Middleware.execute( middlewareOptions.executables, args, ) diff --git a/server/src/core/player.ts b/server/src/core/player.ts index 50c539f..963c872 100644 --- a/server/src/core/player.ts +++ b/server/src/core/player.ts @@ -2,7 +2,7 @@ import { rpc } from './rpc' import type * as T from '../types' /** Handles event manipulations that require player to be present in context */ -export class Player { +export class FW_Player { /** * Triggers a client event from the server with arguments from shared types * @@ -23,13 +23,13 @@ export class Player { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async triggerClient( + public async triggerClient( player: PlayerMp, eventName: EventName, ...args: T._ClientEventHasArgs extends true - ? [T.RageFW_ClientArgs] + ? [T.FW_ClientArgs] : [] - ): Promise> { + ): Promise> { return await rpc.callClient(player, eventName, args) } @@ -53,16 +53,13 @@ export class Player { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public async triggerBrowser( + public async triggerBrowser( player: PlayerMp, eventName: EventName, ...args: T._BrowserEventHasArgs extends true - ? [T.RageFW_BrowserArgs] + ? [T.FW_BrowserArgs] : [] - ): Promise> { + ): Promise> { return await rpc.callBrowser(player, eventName, args) } } - -// new Player().triggerBrowser({} as PlayerMp, 'customCefEvent', ['', 1]) -// new Player().triggerClient({} as PlayerMp, 'customClientEvent', ['', 1]) diff --git a/server/src/core/server.ts b/server/src/core/server.ts index 428e23a..12f4821 100644 --- a/server/src/core/server.ts +++ b/server/src/core/server.ts @@ -1,9 +1,9 @@ import { rpc } from './rpc' -import { Middleware } from './middleware' +import { FW_Middleware } from './middleware' import type * as T from '../types' /** Server-side interactions */ -export class Server { +export class FW_Server { /** * Registers a server event with an associated callback * @@ -11,7 +11,7 @@ export class Server { * @param callback - The callback function to be executed when the event is triggered * @param [options] - Optional settings for callback execution * @param [options.middlewares] - Middleware functions to be checked before the callback executes - * @returns {Server} The current server instance, enabling method chaining + * @returns {FW_Server} The current server instance, enabling method chaining * * @example * // Registering an event @@ -40,13 +40,13 @@ export class Server { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public register( + public register( eventName: EventName, - callback: T.RageFW_ServerCallback, + callback: T.FW_ServerCallback, options?: { - middlewares?: T.RageFW_MiddlewareOptions + middlewares?: T.FW_MiddlewareOptions }, - ): Server { + ): FW_Server { rpc.register< Parameters, ReturnType | Promise, @@ -54,7 +54,7 @@ export class Server { >(eventName, async (...data) => { if (!options?.middlewares) return await callback(...data) - await Middleware.process(options.middlewares, callback, data) + await FW_Middleware.process(options.middlewares, callback, data) }) return this @@ -64,7 +64,7 @@ export class Server { * Unregisters a server event, removing the associated callback * * @param eventName - The name of the event to unregister - * @returns {Server} The current server instance, enabling method chaining + * @returns {FW_Server} The current server instance, enabling method chaining * * @example * // Unregistering an event @@ -72,25 +72,21 @@ export class Server { * * @see {@link https://git.entityseven.com/entityseven/rage-framework/wiki Wiki} */ - public unregister( + public unregister( eventName: EventName, - ): Server { + ): FW_Server { rpc.unregister(eventName) return this } // fixme - // public trigger( + // public trigger( // eventName: EventName, // ...args: T._ServerEventHasArgs extends true - // ? [T.RageFW_ServerArgs] + // ? [T.FW_ServerArgs] // : [] - // ): Promise> { + // ): Promise> { // return rpc.call(eventName, args) // } } - -// new Server() -// .register('customServerEvent', async (a, b, c) => true) -// .unregister('customServerEvent') diff --git a/server/src/types/browser.ts b/server/src/types/browser.ts index 41c4f29..432cfe5 100644 --- a/server/src/types/browser.ts +++ b/server/src/types/browser.ts @@ -1,34 +1,34 @@ -import type { RageFW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomBrowserEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available browser event names * These only include custom events */ -export type RageFW_BrowserEvent = keyof RageFW_ICustomBrowserEvent +export type FW_BrowserEvent = keyof FW_ICustomBrowserEvent /** * Array of arguments of an event you pass as a generic * These only include custom events */ -export type RageFW_BrowserArgs = Parameters< - RageFW_ICustomBrowserEvent[K] +export type FW_BrowserArgs = Parameters< + FW_ICustomBrowserEvent[K] > /** * Return type of event you pass as a generic * These only include custom events */ -export type RageFW_BrowserReturn = ReturnType< - RageFW_ICustomBrowserEvent[K] +export type FW_BrowserReturn = ReturnType< + FW_ICustomBrowserEvent[K] > /** * */ export type _BrowserEventHasArgs< - EventName extends keyof RageFW_ICustomBrowserEvent, -> = keyof RageFW_ICustomBrowserEvent extends never + EventName extends keyof FW_ICustomBrowserEvent, +> = keyof FW_ICustomBrowserEvent extends never ? false - : Parameters[0] extends undefined + : Parameters[0] extends undefined ? false : true diff --git a/server/src/types/client.ts b/server/src/types/client.ts index 44fc16f..d157b14 100644 --- a/server/src/types/client.ts +++ b/server/src/types/client.ts @@ -1,38 +1,35 @@ /// -import type { RageFW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' +import type { FW_ICustomClientEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available client event names * These only include custom events */ -export type RageFW_ClientEvent = keyof RageFW_ICustomClientEvent +export type FW_ClientEvent = keyof FW_ICustomClientEvent /** * Array of arguments of an event you pass as a generic * These only include custom events */ -export type RageFW_ClientArgs = - K extends RageFW_ClientEvent - ? Parameters - : never +export type FW_ClientArgs = K extends FW_ClientEvent + ? Parameters + : never /** * Return type of event you pass as a generic * These only include custom events */ -export type RageFW_ClientReturn = - K extends RageFW_ClientEvent - ? ReturnType - : never +export type FW_ClientReturn = K extends FW_ClientEvent + ? ReturnType + : never /** * */ -export type _ClientEventHasArgs< - EventName extends keyof RageFW_ICustomClientEvent, -> = keyof RageFW_ICustomClientEvent extends never - ? false - : Parameters[0] extends undefined - ? false - : true +export type _ClientEventHasArgs = + keyof FW_ICustomClientEvent extends never + ? false + : Parameters[0] extends undefined + ? false + : true diff --git a/server/src/types/middleware.ts b/server/src/types/middleware.ts index 06ee8f1..cdc0ba8 100644 --- a/server/src/types/middleware.ts +++ b/server/src/types/middleware.ts @@ -1,26 +1,25 @@ import type * as T from './server' -export type RageFW_MiddlewareResponse = +export type FW_MiddlewareResponse = | { success: boolean message?: string } | boolean -export type RageFW_MiddlewareResponseInternal = { +export type FW_MiddlewareResponseInternal = { success: boolean message?: string id?: number } -export type RageFW_MiddlewareFunction = - ( - ...args: T.RageFW_ServerArgs - ) => Promise +export type FW_MiddlewareFunction = ( + ...args: T.FW_ServerArgs +) => Promise -export type RageFW_MiddlewareOptions = - | RageFW_MiddlewareFunction[] +export type FW_MiddlewareOptions = + | FW_MiddlewareFunction[] | { - executables: RageFW_MiddlewareFunction[] + executables: FW_MiddlewareFunction[] onError: (error: string) => unknown } diff --git a/server/src/types/server.ts b/server/src/types/server.ts index 8cfd2dc..0f888a1 100644 --- a/server/src/types/server.ts +++ b/server/src/types/server.ts @@ -1,27 +1,25 @@ /// import type { - RageFW_ICustomClientEvent, - RageFW_ICustomServerEvent, + FW_ICustomClientEvent, + FW_ICustomServerEvent, } from '@entityseven/rage-fw-shared-types' -export type { RageFW_ICustomServerEvent } from '@entityseven/rage-fw-shared-types' +export type { FW_ICustomServerEvent } from '@entityseven/rage-fw-shared-types' /** * Union of all available server event names * These also include system events */ -export type RageFW_ServerEvent = - | keyof RageFW_ICustomServerEvent - | keyof IServerEvents +export type FW_ServerEvent = keyof FW_ICustomServerEvent | keyof IServerEvents /** * Array of arguments for an event, name of which you pass as a generic * These also include system events */ -export type RageFW_ServerArgs = - K extends keyof RageFW_ICustomServerEvent - ? [PlayerMp, ...Parameters] +export type FW_ServerArgs = + K extends keyof FW_ICustomServerEvent + ? [PlayerMp, ...Parameters] : K extends keyof IServerEvents ? [PlayerMp, Parameters] : never @@ -30,9 +28,9 @@ export type RageFW_ServerArgs = * Return type for an event, name of which you pass as a generic * These include system and custom events */ -export type RageFW_ServerReturn = - K extends keyof RageFW_ICustomServerEvent - ? ReturnType +export type FW_ServerReturn = + K extends keyof FW_ICustomServerEvent + ? ReturnType : K extends keyof IServerEvents ? ReturnType : void @@ -41,20 +39,18 @@ export type RageFW_ServerReturn = * Callback (function) for an event, name of which you pass as a generic * These include system and custom events */ -export type RageFW_ServerCallback = ( - ...args: RageFW_ServerArgs -) => Promise> +export type FW_ServerCallback = ( + ...args: FW_ServerArgs +) => Promise> /** * */ -export type _ServerEventHasArgs = - EventName extends keyof RageFW_ICustomServerEvent - ? keyof RageFW_ICustomClientEvent extends never +export type _ServerEventHasArgs = + EventName extends keyof FW_ICustomServerEvent + ? keyof FW_ICustomClientEvent extends never ? false - : Parameters< - RageFW_ICustomServerEvent[EventName] - >[0] extends undefined + : Parameters[0] extends undefined ? false : true : EventName extends keyof IServerEvents diff --git a/shared-types/types/types/index.d.ts b/shared-types/types/types/index.d.ts index 1ac3087..8766a36 100644 --- a/shared-types/types/types/index.d.ts +++ b/shared-types/types/types/index.d.ts @@ -1,13 +1,13 @@ declare module '@entityseven/rage-fw-shared-types' { - export interface RageFW_ICustomServerEvent { + export interface FW_ICustomServerEvent { // customServerEvent(arg1: string, arg2: number): boolean // example event } - export interface RageFW_ICustomClientEvent { + export interface FW_ICustomClientEvent { // customClientEvent(arg1: string, arg2: number): boolean // example event } - export interface RageFW_ICustomBrowserEvent { + export interface FW_ICustomBrowserEvent { // customCefEvent(arg1: string, arg2: number): boolean // example event } }