clefairy
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

clefairy

CLI creation helper

  • Parses and validates argv according to your specification (and gives you TypeScript types)
  • Calls your function, and, if an error occurs (via sync throw or Promise rejection):
    • Pretty-prints the error
    • Exits the process with status code 1

Usage Example

import { run, optionalBoolean, requiredString, optionalString } from "clefairy";

run(
  {
    someColor: optionalString,
    someName: requiredString,
    v: optionalBoolean,
  },
  async (options, ...args) => {
    console.log({ options, args });
  },
  {
    // If you don't pass anything here, it defaults to process.argv.slice(2)
    // But I pass something here for this example to make it clearer how the
    // input argv maps to the options in the function.
    argv: ["-v", "--some-name", "Jeff", "one", "two", "--", "--hi"],
  }
);

// This gets logged:
// {
//   options: { v: true, someName: 'Jeff' },
//   args: [ 'one', 'two', '--hi' ]
// }

License

MIT

Package Sidebar

Install

npm i clefairy

Weekly Downloads

39

Version

2.0.0

License

MIT

Unpacked Size

14.1 kB

Total Files

16

Last publish

Collaborators

  • suchipi