@dbx-tools/cli-args (英语)
从一个 Zod 生成命令旗、 帮助文本、 解析值和 argv
对象计划而不安装完整 dbx 软件包.
绑定和剖析参数
import { addArgs, parseArgs } from "@dbx-tools/cli-args";
import { Command } from "commander";
import { z } from "zod";
const OptionsSchema = z.object({
port: z.coerce.number().default(3000).describe("Server listening port"),
databaseUrl: z.string().url().describe("PostgreSQL connection string"),
});
const program = addArgs(new Command("demo"), OptionsSchema);
await program.parseAsync(process.argv);
const options = parseArgs(program, OptionsSchema);
帮助默认来自Zod和分层 @dbx-tools/core 配置
(环境, .env,捆绑,和应用程序YAML。 使用 .meta({ env, flag, helpDefault })
当一个字段需要确切的环境名称时,应该不列入旗帜清单,或者
应隐藏其默认值。 一个字段 helpDefault: false 推迟分层
配置加载直至 parseArgs因此渲染 --help 未解决
那个价值.
将选项序列化回 argv
import { serializeArgs } from "@dbx-tools/cli-args";
const argv = serializeArgs(OptionsSchema);
const fromValues = serializeArgs({ port: 8080, debug: false });
Schemas将其解析的默认值序列化. 具体对象序列化电流
数值。 布尔错变 --no-*,数组成为重复的旗帜,以及
收听者地址使用共享的收听地址格式.
消费指令定义了他们的计划。 这个包裹绑住指挥官,救命, 和argv序列化。 不使用命令时直接使用命令 Zod 对象计划或分层 @ dbx 工具/ 核心 配置 .