@eegli/tinyparse
TypeScript icon, indicating that this package has built-in type declarations

0.20.0 • Public • Published

Tinyparse

npm GitHub Workflow Status (branch) codecov npm bundle size (scoped)

A tiny, type-safe and flexible utility for creating command line tools in Node.js

What it is

Like oclif and Yargs had a baby.

import { Parser } from '@eegli/tinyparse';

new Parser()
  .option('occasion', {
    longFlag: '--occasion',
    shortFlag: '-o',
    defaultValue: '',
    required: true,
  })
  .subcommand('congratulate', {
    args: ['name'] as const,
    handler: ({ args, options }) => {
      const [name] = args;
      const { occasion } = options;
      console.log(`Happy ${occasion}, ${name}!`);
    },
  })
  .defaultHandler(() => {
    console.log('Please enter your name');
  })
  .parse(['congratulate', 'John', '--occasion', 'birthday'])
  .call();

// Happy birthday, John!

I use this mostly for other pet projects of mine so it comes with some opinions 🤪.

Features

  • TypeScript first - 100% type-safety
  • Supports subcommands and flag options
  • Async API
  • Lightweight - Zero dependencies
  • Mega customizable

Examples

Resources

This project has been guided by the amazing Command Line Interface Guidelines by Aanand Prasad, Ben Firshman, Carl Tashian and Eva Parish.

Further inspiration has been taken from the Apache Commons CLI.

Package Sidebar

Install

npm i @eegli/tinyparse

Weekly Downloads

191

Version

0.20.0

License

MIT

Unpacked Size

64.3 kB

Total Files

15

Last publish

Collaborators

  • eeric