UNPKG

tiny-bin

Version:

A library for building tiny and beautiful command line apps.

38 lines (37 loc) 1.22 kB
/* IMPORT */ import Addon from './addon.js'; import Argument from './argument.js'; import ChainableAction from './chainable_action.js'; import Option from './option.js'; import { isObject } from './utils.js'; /* MAIN */ class ChainableCommandLocal 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 optionOptions = isObject(name) ? name : { name, description, ...options }; const option = new Option(this.bin, optionOptions); this.command.options.register(option, !!optionOptions.override); return this; } argument(name, description, options) { const argumentOptions = isObject(name) ? name : { name, description, ...options }; const argument = new Argument(this.bin, argumentOptions); this.command.arguments.register(argument); return this; } action(handler) { this.command.handler = handler; return new ChainableAction(this.bin); } } /* EXPORT */ export default ChainableCommandLocal;