@boost/args
A convention based argument parsing and formatting library, with strict validation checks. It is not a command line interface.
import { parse } from '@boost/args';
interface Options {
help: boolean;
logLevel: 'info' | 'error' | 'warn';
version: boolean;
}
const { command, errors, options, params, rest } = parse<Options>(process.argv.slice(2), {
commands: ['build', 'install', 'update'],
options: {
help: {
default: false,
description: 'Show a help menu',
type: 'boolean',
short: 'H',
},
logLevel: {
choices: ['info', 'error', 'warn'],
default: 'info',
description: 'Customize logging level',
},
version: {
default: false,
description: 'Show the version number',
type: 'boolean',
short: 'V',
},
},
});
Features
- Commands and sub-commands:
cmd
,cmd:sub
- Options (long and short) that set a value(s):
--foo value
,--foo=value
,-f value
,-f=value
- Camel (preferred) or kebab cased option names.
- Flags (boolean options) that take no value:
--bar
,-B
- With implicit negation support:
--no-bar
- With implicit negation support:
- Parameters that act as standalone values:
foo bar baz
- Can be marked as required.
- Rest arguments that are passed to subsequent scripts (aggregated after
--
):foo -- bar
- Supports
string
,number
,boolean
, and list based values, with the addition of:- Single value based on a list of possible choices.
- Multiple values with optional arity count requirements.
- Group multiple short options under a single argument:
-fBp
- Increment a counter each time a short option is found in a group.
- Strict parser and validation checks, allowing for informative interfaces.
- Custom option and param validation for increased accuracy.
Installation
yarn add @boost/args
Documentation
Index
Classes
Functions
Interfaces
Type Aliases
Variables
Type Aliases
AliasMap
ArgList
ArgsErrorCode
Argv
CommandChecker
ContextFactory
InferArgType
Type parameters
- T
InferOptionConfig
Type parameters
- T
InferParamConfig
Determine option based on type. Only primitives are allowed.
Type parameters
- T
ListType
LongOptionName
Option name without leading "--".
MapOptionConfig
Type parameters
- T: object
MapParamConfig
Type parameters
- T: PrimitiveType[]
MapParamType
Type parameters
- T: PrimitiveType[]
OptionConfig
Abstract type for easier typing.
OptionConfigMap
OptionMap
ParamConfig
Abstract type for easier typing.
ParamConfigList
PrimitiveType
ScalarType
ShortOptionName
Short option name without leading "-".
Determine option based on type.