From 5419805b68b3a7ee36f2663ba305bb93b4a3a6cb Mon Sep 17 00:00:00 2001 From: Danya H Date: Sun, 26 Jan 2025 22:30:10 +0000 Subject: [PATCH] init --- .prettierrc.yaml | 2 +- apps/browser/.prettierrc.yaml | 15 +-- apps/browser/README.md | 4 +- apps/browser/index.html | 18 ++-- apps/browser/package.json | 100 +++++++++--------- apps/browser/src/app.svelte | 22 ++-- apps/browser/src/lib/index.ts | 5 - apps/browser/tsconfig.json | 57 +++++----- apps/browser/tsconfig.node.json | 19 ++-- apps/client/package.json | 24 ++--- apps/client/src/index.ts | 31 +++--- apps/client/src/lib/index.ts | 5 - apps/client/tsconfig.json | 18 ++-- apps/server/package.json | 24 ++--- apps/server/src/index.ts | 32 +++--- apps/server/src/lib/index.ts | 5 - apps/server/tsconfig.json | 20 ++-- .../rage-fw-shared-types/index.d.ts | 11 ++ apps/shared/index.ts | 12 --- apps/shared/package.json | 8 +- package.json | 1 + 21 files changed, 208 insertions(+), 225 deletions(-) delete mode 100644 apps/browser/src/lib/index.ts delete mode 100644 apps/client/src/lib/index.ts delete mode 100644 apps/server/src/lib/index.ts create mode 100644 apps/shared/declarations/rage-fw-shared-types/index.d.ts delete mode 100644 apps/shared/index.ts 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/declarations/rage-fw-shared-types/index.d.ts b/apps/shared/declarations/rage-fw-shared-types/index.d.ts new file mode 100644 index 0000000..f34b277 --- /dev/null +++ b/apps/shared/declarations/rage-fw-shared-types/index.d.ts @@ -0,0 +1,11 @@ +declare module '@entityseven/rage-fw-shared-types' { + export interface RageFW_ICustomClientEvent {} + + export interface RageFW_ICustomServerEvent { + customServerEvent(greetings: string): string + } + + export interface RageFW_ICustomBrowserEvent { + customBrowserEvent(greetings: string): string + } +} 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"