Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

unjs/citty

Repository files navigation

πŸŒ† citty

npm version npm downloads bundle size

Elegant CLI Builder

  • Zero dependency
  • Fast and lightweight argument parser (based on native [node utils](arg parser](https://nodejs.org/api/util.html#utilparseargsconfig))
  • Smart value parsing with typecast and boolean shortcuts
  • Nested sub-commands
  • Lazy and Async commands
  • Pluggable and composable API
  • Auto generated usage and help

Usage

Install package:

npx nypm add -D citty

Import:

import { defineCommand, runMain } from "citty";

Define main command to run:

import { defineCommand, runMain } from "citty";

const main = defineCommand({
  meta: {
    name: "hello",
    version: "1.0.0",
    description: "My Awesome CLI App",
  },
  args: {
    name: {
      type: "positional",
      description: "Your name",
      required: true,
    },
    friendly: {
      type: "boolean",
      description: "Use friendly greeting",
    },
  },
  run({ args }) {
    console.log(`${args.friendly ? "Hi" : "Greetings"} ${args.name}!`);
  },
});

runMain(main);

Utils

defineCommand

defineCommand is a type helper for defining commands.

runMain

Runs a command with usage support and graceful error handling.

createMain

Create a wrapper around command that calls runMain when called.

runCommand

Parses input args and runs command and sub-commands (unsupervised). You can access result key from returnd/awaited value to access command's result.

parseArgs

Parses input arguments and applies defaults.

renderUsage

Renders command usage to a string value.

showUsage

Renders usage and prints to the console

Development

  • Clone this repository
  • Install latest LTS version of Node.js
  • Enable Corepack using corepack enable
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

License

Made with πŸ’› Published under MIT License.