UNPKG

@pgsql/cli

Version:

Unified CLI for PostgreSQL AST parsing, deparsing, and code generation

43 lines (42 loc) 1.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.protoFetchCommand = protoFetchCommand; const chalk_1 = __importDefault(require("chalk")); const help_1 = require("../utils/help"); const helpers_1 = require("./proto-fetch/helpers"); async function protoFetchCommand(argv) { if (argv.help) { (0, help_1.showHelp)('proto-fetch'); process.exit(0); } const url = argv.url; const inFile = argv.inFile; const outFile = argv.outFile; const replacePkg = argv['replace-pkg'] || 'protobufjs/minimal'; const withPkg = argv['with-pkg'] || '@launchql/protobufjs/minimal'; if (!inFile || !outFile) { console.error(chalk_1.default.red('Error: --inFile and --outFile are required')); (0, help_1.showHelp)('proto-fetch'); process.exit(1); } try { if (url) { console.log(chalk_1.default.blue(`Downloading proto file from ${url}...`)); await (0, helpers_1.downloadProtoFile)(url, inFile); console.log(chalk_1.default.green(`✓ Proto file saved to ${inFile}`)); } console.log(chalk_1.default.blue('Generating JavaScript from proto file...')); await (0, helpers_1.generateProtoJS)(inFile, outFile); console.log(chalk_1.default.blue(`Replacing package references...`)); await (0, helpers_1.replaceTextInProtoJS)(outFile, replacePkg, withPkg); console.log(chalk_1.default.green(`✓ All operations completed successfully`)); console.log(chalk_1.default.green(`✓ Generated file: ${outFile}`)); } catch (error) { console.error(chalk_1.default.red('Proto fetch error:'), error.message || error); process.exit(1); } }