This commit is contained in:
Oleksandr Honcharov
2024-06-10 03:53:42 +03:00
parent 835c84261c
commit 8a42309956
26 changed files with 4275 additions and 613 deletions
+9
View File
@@ -0,0 +1,9 @@
import { build } from 'esbuild'
build({
entryPoints: ['./src/index.ts'],
format: 'esm',
platform: 'node',
target: 'node10.4',
outdir: './dist',
}).then(r => console.log('Successfully build.'))
+15
View File
@@ -0,0 +1,15 @@
{
"compilationOptions": {
"followSymlinks": true,
"preferredConfigPath": "../tsconfig.json"
},
"entries": [
{
"filePath": "./src/index.ts",
"outFile": "./dist/index.d.ts",
"libraries": {
"inlinedLibraries": ["@ragempcommunity/types-server"]
}
}
]
}
+6 -1
View File
@@ -2,10 +2,15 @@
"name": "rage-fw-server",
"version": "0.0.1",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"type": "module",
"files": ["dist/**/*"],
"scripts": {
"build": "tsup"
"build": "node --es-module-specifier-resolution=node build.js",
"types": "dts-bundle-generator --config dts.config.json"
},
"peerDependencies": {
"rage-fw-shared-types": "workspace:shared-types:*"
},
"keywords": [],
"author": "SashaGoncharov19",
+2 -27
View File
@@ -1,7 +1,7 @@
/// <reference types="../../shared/server/index.d.ts" />
import rpc from 'rage-rpc'
import { RageFW_ServerEvent, RageFW_ServerEventCallback } from './types.js'
class Server implements RageFW_Server {
class Server {
public register<EventName extends RageFW_ServerEvent>(
eventName: EventName,
callback: RageFW_ServerEventCallback<EventName>,
@@ -19,34 +19,9 @@ class Server implements RageFW_Server {
: (callback as (arg: typeof args) => void)(args)
}),
)
// Object.keys(events).forEach(eventName =>
// // unknown[] ?
// // rpc.register(eventName, (args: unknown[]) =>
// // Array.isArray(args) ? events[eventName as keyof typeof events](...args) : callback(args),
// // ),
// rpc.register(eventName, (...args: unknown[]) =>
// events[eventName as EventName](args),
// ),
// )
}
}
export const rage = {
event: new Server(),
}
rage.event.register('customServerEvent', (player, arg1, arg2) => {
console.log(player, arg1, arg2)
return true
})
rage.event.registerMany({
customServerEvent: (player, arg1, arg2) => {
console.log(player, arg1, arg2)
return true
},
playerDeath: (player, reason, killer) => {
console.log(player, reason, killer)
return undefined
},
})
+18
View File
@@ -0,0 +1,18 @@
/// <reference types="@ragempcommunity/types-server" />
import { RageFW_ICustomServerEvent } from 'rage-fw-shared-types'
export type RageFW_ServerEvent =
| keyof RageFW_ICustomServerEvent
| keyof IServerEvents
export type RageFW_ServerEventCallback<
K extends keyof RageFW_ICustomServerEvent | keyof IServerEvents,
> = K extends keyof RageFW_ICustomServerEvent
? (
player: PlayerMp,
...args: Parameters<RageFW_ICustomServerEvent[K]>
) => ReturnType<RageFW_ICustomServerEvent[K]>
: K extends keyof IServerEvents
? ThisifyServerEvents[K]
: never
+4 -12
View File
@@ -1,17 +1,9 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"lib": [
"ESNext",
"ES5",
"dom"
"typeRoots": [
"@ragempcommunity/types-server"
],
"module": "ESNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"types": ["../node_modules/@ragempcommunity/types-server", "../../shared/server"]
"baseUrl": "./src"
}
}