feat: transition to protobug

This commit is contained in:
TrèsAbhi committed 2024-09-29 20:56:52 -05:00
1 parent 45dc99e1ce
commit 370ef2df65
16 files changed
+105 -387

No files matched your search

+33 -8
View File
@@ -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'),
);