From c6eae9ad51ea314649e1365e8ed0add82bea580b 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 13:29:10 -0500 Subject: [PATCH] feat: update closed --- packages/scripts/src/protos.ts | 93 +++++++++++++++++++++------------- submodules/blitzkit-closed | 2 +- 2 files changed, 59 insertions(+), 36 deletions(-) diff --git a/packages/scripts/src/protos.ts b/packages/scripts/src/protos.ts index 4493bb484..1ad3b85f1 100644 --- a/packages/scripts/src/protos.ts +++ b/packages/scripts/src/protos.ts @@ -1,47 +1,70 @@ -import { exec as execSync } from 'child_process'; -import { existsSync } from 'fs'; -import { readdir, rm, writeFile } from 'fs/promises'; -import { promisify } from 'util'; +import { exec as execSync } from "child_process"; +import { existsSync } from "fs"; +import { readdir, rm, writeFile } from "fs/promises"; +import { promisify } from "util"; -const ROOT = 'packages/core/src/protos'; +const MAX_COMMAND_LENGTH = 2 ** 11; + +const roots = [ + // "packages/core/src/protos", + "submodules/blitzkit-closed/protos", +]; const exec = promisify(execSync); let executableFileExtension: string; -if (existsSync('node_modules/.bin/protoc-gen-ts_proto.exe')) { - executableFileExtension = '.exe'; +if (existsSync("node_modules/.bin/protoc-gen-ts_proto.exe")) { + executableFileExtension = ".exe"; } else { - executableFileExtension = ''; + executableFileExtension = ""; } -const filesRaw = await readdir(`${ROOT}`); -await Promise.all( - filesRaw.map(async (file) => { - if (!file.endsWith('.proto')) { - await rm(`${ROOT}/${file}`); +for (const root of roots) { + const filesRaw = await readdir(`${root}`); + const files: string[] = []; + + for (const file of filesRaw) { + if (file.endsWith(".proto")) files.push(file); + if (file.endsWith(".ts")) await rm(`${root}/${file}`); + } + + while (files.length > 0) { + let command = [ + "protoc", + `--plugin=./node_modules/.bin/protoc-gen-ts_proto${executableFileExtension}`, + "--ts_proto_opt=esModuleInterop=true", + "--ts_proto_opt=oneof=unions-value", + // "--ts_proto_opt=removeEnumPrefix=true", + "--ts_proto_opt=unrecognizedEnum=false", + "--ts_proto_opt=snakeToCamel=false", + `--ts_proto_out=${root}`, + `-I=${root}`, + ].join(" "); + + while (true) { + if (files.length === 0) break; + + const file = files.at(-1); + const newLine = ` ${root}/${file}`; + + if (command.length + newLine.length < MAX_COMMAND_LENGTH) { + command += newLine; + files.pop(); + } else { + break; + } } - }), -); -const files = filesRaw.filter((file) => file.endsWith('.proto')); -const args = [ - `--plugin=./node_modules/.bin/protoc-gen-ts_proto${executableFileExtension}`, - '--ts_proto_opt=esModuleInterop=true', - '--ts_proto_opt=oneof=unions-value', - '--ts_proto_opt=removeEnumPrefix=true', - '--ts_proto_opt=unrecognizedEnum=false', - '--ts_proto_opt=snakeToCamel=false', - '--ts_proto_out=.', - ...files.map((file) => `${ROOT}/${file}`), -]; + await exec(command); + } -await exec(`protoc ${args.join(' ')}`); -await writeFile( - `${ROOT}/index.ts`, - '// @ts-nocheck\n' + - files - .map((file) => file.replace('.proto', '')) - .map((file) => `export * from './${file}.ts';`) - .join('\n'), -); + await writeFile( + `${root}/index.ts`, + "// @ts-nocheck\n" + + files + .map((file) => file.replace(".proto", "")) + .map((file) => `export * from './${file}.ts';`) + .join("\n") + ); +} diff --git a/submodules/blitzkit-closed b/submodules/blitzkit-closed index 5e5f101d1..835ce5c57 160000 --- a/submodules/blitzkit-closed +++ b/submodules/blitzkit-closed @@ -1 +1 @@ -Subproject commit 5e5f101d1b08271d0d37382242ae2efcb65c1c90 +Subproject commit 835ce5c57edcbf984e325d5929873aaf21a609c8