From fd66f9ab17f5dc10a7498ac7c9b3c98dd6829ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 12 Sep 2025 16:49:26 -0500 Subject: [PATCH] feat: compiler based client --- package.json | 1 + packages/scripts/package.json | 1 + packages/scripts/src/buildProxyClient.ts | 45 ++++++++++++++++++++++++ submodules/blitzkit-closed | 2 +- 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 packages/scripts/src/buildProxyClient.ts diff --git a/package.json b/package.json index 8451b6f1b..a982a14dd 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "build:prisma": "prisma generate", "build:sitemap": "bun scripts/sitemap.ts", "build:docs": "vitepress build docs", + "build:proxyclient": "cd packages/scripts && bun run build:proxyclient", "build:ratingleaderboard": "cd packages/scripts && bun run build:ratingleaderboard", "dev:bot": "bun run build:bot --dev && bun start:bot", "start:bot": "bun dist/bot/main.js", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index c2257f005..bd5dba5d2 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -11,6 +11,7 @@ "build:ids": "bun src/discoverIds.ts", "build:bot": "bun src/buildBot.ts", "build:ratingleaderboard": "bun src/buildRatingLeaderboard.ts", + "build:proxyclient": "bun src/buildProxyClient.ts", "prunestrings": "bun src/pruneStrings.ts" }, "dependencies": { diff --git a/packages/scripts/src/buildProxyClient.ts b/packages/scripts/src/buildProxyClient.ts new file mode 100644 index 000000000..395707d42 --- /dev/null +++ b/packages/scripts/src/buildProxyClient.ts @@ -0,0 +1,45 @@ +import { readFile, writeFile } from "fs/promises"; + +const IMPORT = "@protos/auto_legacy_proxy_client"; +const SOURCE = + "../../submodules/blitzkit-closed/protos/auto_legacy_proxy_client.proto"; +const TARGET = + "../../submodules/blitzkit-closed/src/unreal/methodPopulatedProxyClient.ts"; + +const requestPattern = /message (\w+)Request {/g; +const source = await readFile(SOURCE).then((buffer) => buffer.toString()); +const requests = source.matchAll(requestPattern); + +const imports: string[] = []; +const methods: { name: string; method: string }[] = []; + +for (const match of requests) { + const name = match[1]; + // const method = + // name.charAt(0).toLowerCase() + name.slice(1).replace(/Async$/, ""); + const method = name; + + imports.push(`${name}Request`, `${name}Response`); + methods.push({ name, method }); +} + +let content = ""; + +content += "import {\n"; +content += imports.map((i) => ` ${i},`).join("\n"); +content += `\n} from "${IMPORT}";\n`; + +content += 'import { BaseProxyClient } from "./baseProxyClient";\n\n'; + +content += + "export abstract class MethodPopulatedProxyClient extends BaseProxyClient {\n"; +content += methods + .map(({ name, method }) => { + return ` ${method}(data: ${name}Request) { + return this.request("${name}Request", ${name}Request, data, ${name}Response); + }\n`; + }) + .join(""); +content += "}\n"; + +await writeFile(TARGET, content); diff --git a/submodules/blitzkit-closed b/submodules/blitzkit-closed index 539798454..e00618ec6 160000 --- a/submodules/blitzkit-closed +++ b/submodules/blitzkit-closed @@ -1 +1 @@ -Subproject commit 539798454c6d7f6c067f774a3fb0d99fc3ceadc5 +Subproject commit e00618ec65039d102404b6063daed0c42498a663