mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
- Instala commander@^14.0.0 com suporte nativo a ESM - Cria bin/cli/program.mjs: programa raiz com opções globais (--output, --quiet, --no-color, --timeout, --api-key, --base-url) - Cria bin/cli/commands/registry.mjs: adaptadores legados que delegam para os run*Command existentes sem quebrar compatibilidade - Cria bin/cli/commands/serve.mjs: ação padrão (isDefault: true) com lógica de spawn extraída de omniroute.mjs, imports de runtime lazy - Cria bin/cli/commands/reset-encrypted-columns.mjs: bypass de recuperação - Refatora bin/omniroute.mjs: ~500 → ~90 linhas, delega ao Commander - Adiciona strings i18n program.* e serve.description/port/no_open/daemon em en.json e pt-BR.json - Adiciona 21 testes em tests/unit/cli-program.test.ts
34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
import { Command, Option } from "commander";
|
|
import { readFileSync } from "node:fs";
|
|
import { join, dirname } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { registerCommands } from "./commands/registry.mjs";
|
|
import { t } from "./i18n.mjs";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
const pkg = JSON.parse(readFileSync(join(__dirname, "..", "..", "package.json"), "utf8"));
|
|
|
|
export function createProgram() {
|
|
const program = new Command();
|
|
|
|
program
|
|
.name("omniroute")
|
|
.description(t("program.description"))
|
|
.version(pkg.version, "-v, --version", t("program.version"))
|
|
.addOption(
|
|
new Option("--output <format>", t("program.output"))
|
|
.choices(["table", "json", "jsonl", "csv"])
|
|
.default("table")
|
|
)
|
|
.addOption(new Option("-q, --quiet", t("program.quiet")))
|
|
.addOption(new Option("--no-color", t("program.no_color")))
|
|
.addOption(new Option("--timeout <ms>", t("program.timeout")).default("30000"))
|
|
.addOption(new Option("--api-key <key>", t("program.api_key")).env("OMNIROUTE_API_KEY"))
|
|
.addOption(new Option("--base-url <url>", t("program.base_url")).env("OMNIROUTE_BASE_URL"))
|
|
.showHelpAfterError(true)
|
|
.exitOverride();
|
|
|
|
registerCommands(program);
|
|
return program;
|
|
}
|