UNPKG

tiny-bin

Version:

A library for building tiny and beautiful command line apps.

35 lines (34 loc) 1.03 kB
/* IMPORT */ import Addon from './addon.js'; import Argument from './argument.js'; import ChainableBinLocal from './chainable_bin_local.js'; import Option from './option.js'; /* MAIN */ class ChainableCommand extends Addon { /* CONSTRUCTOR */ constructor(bin, command) { super(bin); this.command = command; } /* API */ usage(usage) { this.command.usage.register(usage); return this; } option(name, description, options = {}) { const option = new Option(this.bin, { name, description, ...options }); this.command.options.register(option, !!options.override); return this; } argument(name, description, options = {}) { const argument = new Argument(this.bin, { name, description, ...options }); this.command.arguments.register(argument); return this; } action(handler) { this.command.handler = handler; return new ChainableBinLocal(this.bin); } } /* EXPORT */ export default ChainableCommand;