mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-22 03:07:04 +02:00
feat: transition to protobug
This commit is contained in:
1 parent
45dc99e1ce
commit
370ef2df65
16 files changed
+105
-387
No files matched your search
@@ -1,16 +1,41 @@
|
||||
import { $ } from 'bun';
|
||||
import { readdir } from 'fs/promises';
|
||||
import { exec as execSync } from 'child_process';
|
||||
import { existsSync } from 'fs';
|
||||
import { cp, mkdir, readdir, rm, writeFile } from 'fs/promises';
|
||||
import { promisify } from 'util';
|
||||
|
||||
const ROOT = 'packages/core/protos';
|
||||
const ROOT = 'packages/core/src/protos';
|
||||
|
||||
const exec = promisify(execSync);
|
||||
|
||||
let executableFileExtension: string;
|
||||
|
||||
if (existsSync('node_modules/.bin/protoc-gen-ts.exe')) {
|
||||
executableFileExtension = '.exe';
|
||||
} else {
|
||||
executableFileExtension = '';
|
||||
}
|
||||
|
||||
const files = await readdir(`${ROOT}/raw`);
|
||||
const args = [
|
||||
'--plugin="./node_modules/.bin/protoc-gen-ts"',
|
||||
'--js_out="import_style=commonjs,binary:${OUT_DIR}"',
|
||||
`--ts_out="${ROOT}/generated"`,
|
||||
`--plugin="protoc-gen-ts=./node_modules/.bin/protoc-gen-ts${executableFileExtension}"`,
|
||||
'--ts_opt=esModuleInterop=true',
|
||||
`--js_out="import_style=commonjs,binary:./${ROOT}/generated"`,
|
||||
`--ts_out="./${ROOT}/generated"`,
|
||||
...files.map((file) => `${ROOT}/raw/${file}`),
|
||||
];
|
||||
|
||||
console.log(`protoc ${args.join(' ')}`);
|
||||
await rm(`${ROOT}/generated`, { recursive: true, force: true });
|
||||
await mkdir(`${ROOT}/generated`, { recursive: true });
|
||||
await exec(`protoc ${args.join(' ')}`);
|
||||
await cp(`${ROOT}/generated/${ROOT}/raw`, `${ROOT}/generated`, {
|
||||
recursive: true,
|
||||
});
|
||||
await rm(`${ROOT}/generated/packages`, { recursive: true, force: true });
|
||||
|
||||
console.log(await $`protoc ${args.join(' ')}`.text());
|
||||
await writeFile(
|
||||
`${ROOT}/generated/index.ts`,
|
||||
files
|
||||
.map((file) => file.replace('.proto', ''))
|
||||
.map((file) => `export * from './${file}_pb';`)
|
||||
.join('\n'),
|
||||
);
|
||||
Reference in new issue
Block a user