diff --git a/.prettierrc.yaml b/.prettierrc.yaml
index a92c668..3265b7f 100644
--- a/.prettierrc.yaml
+++ b/.prettierrc.yaml
@@ -4,4 +4,4 @@ singleQuote: true
jsxSingleQuote: false
semi: false
arrowParens: avoid
-endOfLine: auto
\ No newline at end of file
+endOfLine: auto
diff --git a/apps/browser/.prettierrc.yaml b/apps/browser/.prettierrc.yaml
index 4c88663..0958e09 100644
--- a/apps/browser/.prettierrc.yaml
+++ b/apps/browser/.prettierrc.yaml
@@ -5,10 +5,13 @@ jsxSingleQuote: false
semi: false
arrowParens: avoid
endOfLine: auto
-overrides:
- - files: "*.{css,sass,scss}"
- options:
- tabWidth: 2
plugins:
- - prettier-plugin-tailwindcss
-parser: typescript
\ No newline at end of file
+ - prettier-plugin-svelte
+overrides:
+ - files: '*.{css,sass,scss}'
+ options:
+ tabWidth: 2
+ parser: scss
+ - files: '*.svelte'
+ options:
+ parser: 'svelte'
diff --git a/apps/browser/README.md b/apps/browser/README.md
index e6cd94f..5fd2573 100644
--- a/apps/browser/README.md
+++ b/apps/browser/README.md
@@ -14,8 +14,8 @@ Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also pow
**Why use this over SvelteKit?**
-- It brings its own routing solution which might not be preferable for some users.
-- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
+- It brings its own routing solution which might not be preferable for some users.
+- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
diff --git a/apps/browser/index.html b/apps/browser/index.html
index 7731d88..12487ed 100644
--- a/apps/browser/index.html
+++ b/apps/browser/index.html
@@ -1,12 +1,12 @@
-
-
-
- Svelte 5 Demo
-
-
-
-
-
+
+
+
+ Svelte 5 Demo
+
+
+
+
+
diff --git a/apps/browser/package.json b/apps/browser/package.json
index c1cc4af..5e9a237 100644
--- a/apps/browser/package.json
+++ b/apps/browser/package.json
@@ -1,53 +1,53 @@
{
- "scripts": {
- "dev": "vite",
- "build": "tsc && vite build",
- "preview": "vite preview",
- "lint": "eslint --c .eslintrc.yaml src",
- "check": "svelte-check --tsconfig ./tsconfig.json && tsc -p tsconfig.node.json"
- },
- "dependencies": {
- "@rage-fw/shared": "workspace:^",
- "@entityseven/rage-fw-rpc": "0.2.5"
- },
- "devDependencies": {
- "@sveltejs/vite-plugin-svelte": "^4.0.0-next.6",
- "@tsconfig/svelte": "^5.0.4",
- "@types/node": "^22.5.0",
- "@typescript-eslint/eslint-plugin": "^8.2.0",
- "@typescript-eslint/parser": "^8.2.0",
- "autoprefixer": "^10.4.20",
- "eslint": "^9.3.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
- "globals": "^15.9.0",
- "prettier": "^3.3.3",
- "prettier-plugin-svelte": "^3.2.6",
- "svelte": "5.1.3",
- "svelte-check": "^3.8.5",
- "tslib": "^2.6.3",
- "typescript": "^5.5.3",
- "typescript-eslint": "^8.2.0",
- "vite": "^5.4.1"
- },
- "name": "src-web",
- "private": true,
- "homepage": ".",
- "version": "0.0.0",
- "type": "module",
- "browserslist": {
- "production": [
- ">0.2%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 1 chrome version",
- "last 1 firefox version",
- "last 1 safari version"
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "preview": "vite preview",
+ "lint": "eslint --c .eslintrc.yaml src",
+ "check": "svelte-check --tsconfig ./tsconfig.json && tsc -p tsconfig.node.json"
+ },
+ "dependencies": {
+ "@entityseven/rage-fw-browser": "0.2.0",
+ "@rage-fw/shared": "workspace:^"
+ },
+ "devDependencies": {
+ "@sveltejs/vite-plugin-svelte": "^4.0.0-next.6",
+ "@tsconfig/svelte": "^5.0.4",
+ "@types/node": "^22.5.0",
+ "@typescript-eslint/eslint-plugin": "^8.2.0",
+ "@typescript-eslint/parser": "^8.2.0",
+ "autoprefixer": "^10.4.20",
+ "eslint": "^9.3.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.2.1",
+ "globals": "^15.9.0",
+ "prettier": "^3.3.3",
+ "prettier-plugin-svelte": "^3.3.3",
+ "svelte": "5.1.3",
+ "svelte-check": "^3.8.5",
+ "tslib": "^2.6.3",
+ "typescript": "^5.5.3",
+ "typescript-eslint": "^8.2.0",
+ "vite": "^5.4.1"
+ },
+ "name": "src-web",
+ "private": true,
+ "homepage": ".",
+ "version": "0.0.0",
+ "type": "module",
+ "browserslist": {
+ "production": [
+ ">0.2%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ },
+ "trustedDependencies": [
+ "svelte-preprocess"
]
- },
- "trustedDependencies": [
- "svelte-preprocess"
- ]
}
diff --git a/apps/browser/src/app.svelte b/apps/browser/src/app.svelte
index d6bbc5f..3f0e7e4 100644
--- a/apps/browser/src/app.svelte
+++ b/apps/browser/src/app.svelte
@@ -1,20 +1,24 @@
Hello World!
{data}
-
\ No newline at end of file
+
diff --git a/apps/browser/src/lib/index.ts b/apps/browser/src/lib/index.ts
deleted file mode 100644
index a503f08..0000000
--- a/apps/browser/src/lib/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Rpc } from '@entityseven/rage-fw-rpc'
-
-export const rpc = new Rpc({
- debugLogs: true,
-})
diff --git a/apps/browser/tsconfig.json b/apps/browser/tsconfig.json
index 7440fb6..7fcbf23 100644
--- a/apps/browser/tsconfig.json
+++ b/apps/browser/tsconfig.json
@@ -1,32 +1,33 @@
{
- "compilerOptions": {
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "module": "ESNext",
- "skipLibCheck": true,
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "react-jsx",
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "noFallthroughCasesInSwitch": true,
- "types": [
- "../../node_modules/@ragempcommunity/types-cef",
- ],
- "paths": {
- "@": ["./src"],
- "@/*": ["./src/*"],
- }
- },
- "include": ["src"],
- "references": [{ "path": "./tsconfig.node.json" }]
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "types": [
+ "../../node_modules/@ragempcommunity/types-cef",
+ "../shared/declarations/rage-fw-shared-types/"
+ ],
+ "paths": {
+ "@": ["./src"],
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["src"],
+ "references": [{ "path": "./tsconfig.node.json" }]
}
diff --git a/apps/browser/tsconfig.node.json b/apps/browser/tsconfig.node.json
index fcc4585..5ca371f 100644
--- a/apps/browser/tsconfig.node.json
+++ b/apps/browser/tsconfig.node.json
@@ -1,12 +1,11 @@
{
- "compilerOptions": {
- "composite": true,
- "skipLibCheck": true,
- "strict": true,
-// "noEmit": true,
- "module": "ESNext",
- "moduleResolution": "bundler",
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo"
- },
- "include": ["vite.config.ts"]
+ "compilerOptions": {
+ "composite": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo"
+ },
+ "include": ["vite.config.ts"]
}
diff --git a/apps/client/package.json b/apps/client/package.json
index 528e64f..6432153 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -1,14 +1,14 @@
{
- "name": "rage-fw-example-client",
- "description": "Client side of Rage-FW example",
- "scripts": {
- "build": "esbuild src/index.ts --bundle --platform=node --outfile=../../server/client_packages/index.js --format=esm"
- },
- "dependencies": {
- "@rage-fw/shared": "workspace:^",
- "@entityseven/rage-fw-rpc": "0.2.5"
- },
- "license": "MIT",
- "author": "Entity Seven Group",
- "version": "0.1.0"
+ "name": "rage-fw-example-client",
+ "description": "Client side of Rage-FW example",
+ "scripts": {
+ "build": "esbuild src/index.ts --bundle --platform=node --outfile=../../server/client_packages/index.js --format=esm"
+ },
+ "dependencies": {
+ "@rage-fw/shared": "workspace:^",
+ "@entityseven/rage-fw-client": "0.2.0"
+ },
+ "license": "MIT",
+ "author": "Entity Seven Group",
+ "version": "0.1.0"
}
diff --git a/apps/client/src/index.ts b/apps/client/src/index.ts
index 70188fe..ede60cc 100644
--- a/apps/client/src/index.ts
+++ b/apps/client/src/index.ts
@@ -1,22 +1,15 @@
-import { events } from '@rage-fw/shared'
-import { rpc } from './lib'
+import { fw } from '@entityseven/rage-fw-client'
-rpc.browser = mp.browsers.new('package://cef/index.html')
+fw.player.browser = mp.browsers.new('package://cef/index.html')
-rpc.register(events.client.cefReady, async (args: string) => {
- mp.console.logInfo(args)
- const res = (await rpc.callServer(events.server.customServerEvent, [
- 'hello from client',
- ])) as string
- mp.console.logInfo(res)
- return 'response from client'
-})
-
-rpc.register(events.client.cefReady, async (args: string) => {
- mp.console.logInfo(args)
- const res = (await rpc.callBrowser(events.browser.customBrowserEvent, [
- 'hello from client',
- ])) as string
- mp.console.logInfo(res)
- return 'response from client'
+fw.event.register('cefReady', async () => {
+ fw.system.log.info('cefReady')
+
+ const responseBrowser = await fw.player.triggerBrowser(
+ 'customBrowserEvent',
+ ['from client'],
+ )
+ fw.system.log.info(responseBrowser)
+
+ await fw.player.triggerServer('customServerEvent', ['from client'])
})
diff --git a/apps/client/src/lib/index.ts b/apps/client/src/lib/index.ts
deleted file mode 100644
index a503f08..0000000
--- a/apps/client/src/lib/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Rpc } from '@entityseven/rage-fw-rpc'
-
-export const rpc = new Rpc({
- debugLogs: true,
-})
diff --git a/apps/client/tsconfig.json b/apps/client/tsconfig.json
index f53a59f..b7cba9b 100644
--- a/apps/client/tsconfig.json
+++ b/apps/client/tsconfig.json
@@ -1,11 +1,11 @@
{
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "resolveJsonModule": true,
- "baseUrl": "./src",
- "types": [
- "../../node_modules/@ragempcommunity/types-client",
- "../shared/declarations/rage-fw-shared-types/"
- ]
- }
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "resolveJsonModule": true,
+ "baseUrl": "./src",
+ "types": [
+ "../../node_modules/@ragempcommunity/types-client",
+ "../shared/declarations/rage-fw-shared-types/"
+ ]
+ }
}
diff --git a/apps/server/package.json b/apps/server/package.json
index 4cbff10..6f84bd7 100644
--- a/apps/server/package.json
+++ b/apps/server/package.json
@@ -1,14 +1,14 @@
{
- "name": "rage-fw-example-server",
- "description": "Server side of Rage-FW example",
- "scripts": {
- "build": "esbuild src/index.ts --bundle --platform=node --target=node10.4 --outfile=../../server/packages/server/index.js"
- },
- "dependencies": {
- "@rage-fw/shared": "workspace:^",
- "@entityseven/rage-fw-rpc": "0.2.5"
- },
- "license": "MIT",
- "author": "Entity Seven Group",
- "version": "0.1.0"
+ "name": "rage-fw-example-server",
+ "description": "Server side of Rage-FW example",
+ "scripts": {
+ "build": "esbuild src/index.ts --bundle --platform=node --target=node10.4 --outfile=../../server/packages/server/index.js"
+ },
+ "dependencies": {
+ "@rage-fw/shared": "workspace:^",
+ "@entityseven/rage-fw-server": "0.2.0"
+ },
+ "license": "MIT",
+ "author": "Entity Seven Group",
+ "version": "0.1.0"
}
diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts
index 8013154..5a2f420 100644
--- a/apps/server/src/index.ts
+++ b/apps/server/src/index.ts
@@ -1,20 +1,18 @@
-import { events } from '@rage-fw/shared'
-import { rpc } from './lib'
+import { fw } from '@entityseven/rage-fw-server'
-rpc.register('playerJoin', async (player: PlayerMp) => {
- console.log(`[Server] ${player.socialClub} connected`)
+fw.event.register('playerJoin', async player => {
+ fw.system.log.info(`Connected: ${player.socialClub}`)
})
-rpc.register(
- events.server.customServerEvent,
- async (player: PlayerMp, args: string) => {
- console.log(args)
- const res = await rpc.callClient(
- player,
- events.client.customClientEvent,
- ['hello from server'],
- )
- console.log(res)
- return 'response from server'
- },
-)
+fw.event.register('customServerEvent', async (player, greeting) => {
+ fw.system.log.info(player.socialClub + ' ' + greeting)
+
+ const resFromBrowser = await fw.player.triggerBrowser(
+ player,
+ 'customBrowserEvent',
+ ['from server'],
+ )
+ fw.system.log.info(player.socialClub + ' ' + resFromBrowser)
+
+ return 'from server'
+})
diff --git a/apps/server/src/lib/index.ts b/apps/server/src/lib/index.ts
deleted file mode 100644
index a503f08..0000000
--- a/apps/server/src/lib/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Rpc } from '@entityseven/rage-fw-rpc'
-
-export const rpc = new Rpc({
- debugLogs: true,
-})
diff --git a/apps/server/tsconfig.json b/apps/server/tsconfig.json
index 5064ffe..04469c8 100644
--- a/apps/server/tsconfig.json
+++ b/apps/server/tsconfig.json
@@ -1,12 +1,12 @@
{
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "lib": ["DOM", "ESNext"],
- "resolveJsonModule": true,
- "baseUrl": "./src",
- "types": [
- "../../node_modules/@ragempcommunity/types-server",
- "../shared/declarations/rage-fw-shared-types/"
- ]
- }
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "lib": ["DOM", "ESNext"],
+ "resolveJsonModule": true,
+ "baseUrl": "./src",
+ "types": [
+ "../../node_modules/@ragempcommunity/types-server",
+ "../shared/declarations/rage-fw-shared-types/"
+ ]
+ }
}
diff --git a/apps/shared/index.ts b/apps/shared/index.ts
deleted file mode 100644
index 47abdc9..0000000
--- a/apps/shared/index.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export const events = {
- server: {
- customServerEvent: 'customServerEvent',
- },
- client: {
- cefReady: 'cefReady',
- customClientEvent: 'customClientEvent',
- },
- browser: {
- customBrowserEvent: 'customBrowserEvent',
- },
-}
diff --git a/apps/shared/package.json b/apps/shared/package.json
index d2d616b..cb4767b 100644
--- a/apps/shared/package.json
+++ b/apps/shared/package.json
@@ -1,6 +1,6 @@
{
- "name": "@rage-fw/shared",
- "description": "Shared data for Rage-FW example",
- "version": "0.1.0",
- "main": "index.ts"
+ "name": "@rage-fw/shared",
+ "description": "Shared data for Rage-FW example",
+ "version": "0.1.0",
+ "main": "index.ts"
}
diff --git a/package.json b/package.json
index 88adae2..7550c63 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"@ragempcommunity/types-client": "^2.1.8",
"@ragempcommunity/types-server": "^2.1.8",
"@ragempcommunity/types-cef": "^2.1.8",
+ "@entityseven/rage-fw-shared-types": "0.2.0",
"esbuild": "^0.21.5",
"typescript": "^5.4.5",
"prettier": "^3.3.2"