examples/context.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import { Command } from "../src/index";
const app = new Command()
.setName("app")
.setDescription("app to demonstrate context inference")
.addFlag("verbose", { short: "v", description: "enable verbose output" })
.addStringArgument("env", { required: true, short: "e" })
.addNumberArgument("port", { short: "p", required: false })
.addChoiceArgument("mode", {
choices: ["development", "production"] as const,
required: true,
})
.addPositional("input", { required: true })
.setAction((ctx) => {
console.log("context:", ctx);
console.log(`verbose: ${ctx.verbose}`); // (property) verbose: boolean
console.log(`environment: ${ctx.env}`); // (property) env: string
console.log(`port: ${ctx.port}`); // (property) port: number | undefined
console.log(`mode: ${ctx.mode}`); // (property) mode: "development" | "production"
console.log(`input: ${ctx.input}`); // (property) input: string
});
app.parse(process.argv.slice(2)).catch(console.error);
|