@forwardimpact/libcodegen
Advanced tools
+20
-7
@@ -7,3 +7,3 @@ #!/usr/bin/env node | ||
| import { fileURLToPath } from "node:url"; | ||
| import { execSync } from "node:child_process"; | ||
| import { execFileSync } from "node:child_process"; | ||
| import { parseArgs } from "node:util"; | ||
@@ -46,8 +46,13 @@ | ||
| try { | ||
| const directoriesArg = directories.join(" "); | ||
| execSync(`tar -czf "${bundlePath}" -C "${sourcePath}" ${directoriesArg}`, { | ||
| stdio: "pipe", | ||
| execFileSync( | ||
| "tar", | ||
| ["-czf", bundlePath, "-C", sourcePath, ...directories], | ||
| { | ||
| stdio: "pipe", | ||
| }, | ||
| ); | ||
| } catch (error) { | ||
| throw new Error(`Failed to create bundle: ${error.message}`, { | ||
| cause: error, | ||
| }); | ||
| } catch (error) { | ||
| throw new Error(`Failed to create bundle: ${error.message}`); | ||
| } | ||
@@ -127,4 +132,12 @@ } | ||
| const base = new CodegenBase(projectRoot, path, mustache, protoLoader, fs); | ||
| const pbjsPath = path.resolve( | ||
| __dirname, | ||
| "..", | ||
| "node_modules", | ||
| "protobufjs-cli", | ||
| "bin", | ||
| "pbjs", | ||
| ); | ||
| return { | ||
| types: new CodegenTypes(base), | ||
| types: new CodegenTypes(base, pbjsPath), | ||
| services: new CodegenServices(base), | ||
@@ -131,0 +144,0 @@ definitions: new CodegenDefinitions(base), |
+5
-5
| { | ||
| "name": "@forwardimpact/libcodegen", | ||
| "version": "0.1.28", | ||
| "version": "0.1.29", | ||
| "description": "Protocol Buffer code generation utilities for Guide", | ||
@@ -20,8 +20,8 @@ "license": "Apache-2.0", | ||
| "@grpc/proto-loader": "^0.8.0", | ||
| "mustache": "^4.2.0", | ||
| "protobufjs": "^7.5.4", | ||
| "protobufjs-cli": "^1.2.0" | ||
| "mustache": "^4.2.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@forwardimpact/libharness": "^0.1.5" | ||
| "@forwardimpact/libharness": "^0.1.5", | ||
| "protobufjs": "^7.5.4", | ||
| "protobufjs-cli": "^2.0.0" | ||
| }, | ||
@@ -28,0 +28,0 @@ "publishConfig": { |
+13
-4
@@ -7,2 +7,3 @@ /** | ||
| #base; | ||
| #pbjsPath; | ||
@@ -12,6 +13,8 @@ /** | ||
| * @param {object} base - CodegenBase instance providing shared utilities | ||
| * @param {string} [pbjsPath] - Absolute path to the pbjs binary (resolved from protobufjs-cli) | ||
| */ | ||
| constructor(base) { | ||
| constructor(base, pbjsPath) { | ||
| if (!base) throw new Error("CodegenBase instance is required"); | ||
| this.#base = base; | ||
| this.#pbjsPath = pbjsPath || null; | ||
| } | ||
@@ -90,6 +93,12 @@ | ||
| await this.#base.run("npx", ["pbjs", ...args], { | ||
| cwd: this.#base.projectRoot, | ||
| }); | ||
| if (this.#pbjsPath) { | ||
| await this.#base.run(process.execPath, [this.#pbjsPath, ...args], { | ||
| cwd: this.#base.projectRoot, | ||
| }); | ||
| } else { | ||
| await this.#base.run("npx", ["pbjs", ...args], { | ||
| cwd: this.#base.projectRoot, | ||
| }); | ||
| } | ||
| } | ||
| } |
46156
1.06%2
-50%752
3.01%3
200%- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed