mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 11:39:50 +02:00
feat: update ts-proto executable handling to support multiple locations
This commit is contained in:
1 parent
be778acf39
commit
2e79ccf7eb
1 file changed
+22
-7
@@ -4,7 +4,10 @@ import { readdir, rm } from "fs/promises";
|
|||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
|
|
||||||
const MAX_COMMAND_LENGTH = 2 ** 11;
|
const MAX_COMMAND_LENGTH = 2 ** 11;
|
||||||
const TS_PROTO_EXECUTABLE = "./node_modules/.bin/protoc-gen-ts_proto";
|
const TS_PROTO_EXECUTABLE_LOCATIONS = [
|
||||||
|
"./node_modules/.bin/protoc-gen-ts_proto",
|
||||||
|
"../../node_modules/.bin/protoc-gen-ts_proto",
|
||||||
|
];
|
||||||
|
|
||||||
const roots = [
|
const roots = [
|
||||||
// "../../packages/core/src/protos",
|
// "../../packages/core/src/protos",
|
||||||
@@ -13,12 +16,24 @@ const roots = [
|
|||||||
|
|
||||||
const exec = promisify(execSync);
|
const exec = promisify(execSync);
|
||||||
|
|
||||||
let executableFileExtension: string;
|
let tsProtoExecutableLocation: string | undefined = undefined;
|
||||||
|
|
||||||
if (existsSync(`${TS_PROTO_EXECUTABLE}.exe`)) {
|
for (const location of TS_PROTO_EXECUTABLE_LOCATIONS) {
|
||||||
executableFileExtension = ".exe";
|
if (existsSync(location)) {
|
||||||
} else {
|
tsProtoExecutableLocation = location;
|
||||||
executableFileExtension = "";
|
break;
|
||||||
|
} else if (existsSync(`${location}.exe`)) {
|
||||||
|
tsProtoExecutableLocation = `${location}.exe`;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!tsProtoExecutableLocation) {
|
||||||
|
throw new Error(
|
||||||
|
`Could not find ts-proto executable. Checked locations: ${TS_PROTO_EXECUTABLE_LOCATIONS.join(
|
||||||
|
", "
|
||||||
|
)}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const root of roots) {
|
for (const root of roots) {
|
||||||
@@ -33,7 +48,7 @@ for (const root of roots) {
|
|||||||
while (files.length > 0) {
|
while (files.length > 0) {
|
||||||
let command = [
|
let command = [
|
||||||
"protoc",
|
"protoc",
|
||||||
`--plugin=${TS_PROTO_EXECUTABLE}${executableFileExtension}`,
|
`--plugin=${tsProtoExecutableLocation}`,
|
||||||
"--ts_proto_opt=esModuleInterop=true",
|
"--ts_proto_opt=esModuleInterop=true",
|
||||||
"--ts_proto_opt=oneof=unions-value",
|
"--ts_proto_opt=oneof=unions-value",
|
||||||
// "--ts_proto_opt=removeEnumPrefix=true",
|
// "--ts_proto_opt=removeEnumPrefix=true",
|
||||||
|
|||||||
Reference in new issue
Block a user