all repos — cmd @ 968a6b07a401a38f88958d5ba3e10d60abdc54ef

Unnamed repository; edit this file 'description' to name the repository.

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);