clify.js
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.1 • Public • Published

clify.js

Basic Usage

#!/usr/bin/env node
import { Clify, configure } from 'clify.js';

const program = configure(program => {
    program.setVersion('1.0.0');
    program.setDescription('A simple cli program');
    program.setName('my-script');

    program.main((cmd) => {
        const input = cmd.input();

        return () => {
            Clify.log(`Input: <${input.get()}>`)
        };
    });
});

program.run();

Get help:

$ ./my-script --help
    Usage: my-script INPUT

    A simple cli program

Run it:

$ ./my-script "command input string"
    Input: <command input string>

Options

Create Option definition:

import { defineOption } from 'clify.js';

const OutfileOption = defineOption({
    name: 'outfile',
    char: 'o',
    description: 'Path to the output file',
    type: 'string',
    required: true,
});

Use it in the program:

const program = configure(program => {
    program.setVersion('1.0.0');
    program.setDescription('A simple cli program');
    program.setName('my-script');

    program.main((cmd) => {
        const outfile = cmd.option(OutfileOption);

        return () => {
            Clify.log(`Outfile: <${outfile.value}>`)
        };
    });
});

Get help:

$ ./my-script --help
    Usage: my-script INPUT [...OPTIONS]

    A simple cli program

    Options:
        -o, --outfile <string>    Path to the output file

Run it:

$ ./my-script --outfile output.txt
    Outfile: <output.txt>

Commands

import { configure, defineOption } from 'clify.js';

const QuietOption = defineOption({
    name: 'quiet',
    char: 'q',
    description: 'Do not output anything',
    type: 'boolean',
    default: false,
});

const program = configure(program => {
    program.setVersion('1.0.0');
    program.setDescription('A simple cli program');
    program.setName('my-script');

    program.command('cmd', (cmd) => {
        const input = cmd.input();
        const quiet = cmd.option(QuietOption);

        return () => {
            if (!quiet.value) {
                Clify.log(`Input: <${input.get()}>`)
            }
        };
    });
});

Get help:

$ ./my-script --help
    Usage: my-script COMMAND

    A simple cli program

    Commands:
        cmd

$ ./my-script cmd --help
    Usage: my-script cmd [...OPTIONS]

    Options:
        --quiet, -q    Do not output anything

Run it:

$ ./my-script cmd "command input string"
    Input: <command input string>
$ ./my-script cmd --quiet "command input string"

Nested Commands

import { configure } from 'clify.js';

const program = configure(program => {
    program.setVersion('1.0.0');
    program.setDescription('A simple cli program');
    program.setName('my-script');

    const cmd = program.command('cmd', (cmd) => {
        return () => {}
    });

    cmd.command('foo', (cmd) => {
        return () => {
            Clify.log('Hi from foo!');
        }
    });
});

Get help:

$ ./my-script --help
    Usage: my-script COMMAND

    A simple cli program

    Commands:
        cmd
$ ./my-script cmd --help
    Usage: my-script cmd COMMAND

    Commands:
        foo
$ ./my-script cmd foo --help
    Usage: my-script cmd foo

Run it:

$ ./my-script cmd foo
    Hi from foo!

Package Sidebar

Install

npm i clify.js

Weekly Downloads

1

Version

1.0.0-beta.1

License

MIT

Unpacked Size

5.19 MB

Total Files

43

Last publish

Collaborators

  • ncpa0cpl