npm install @jakubmazanec/args
- Node.js 22 or later
- TypeScript 5 or later
Main purpose of this library is to parse command line arguments. Such command line can look like this:
┌─ 1 ─┐ ┌─ 2 ──┐ ┌─── 3 ───┐ ┌─── 4 ───┐ ┌─ 5 ─┐ ┌ 6 ┐ ┌─── 7 ───┐ ┌─────── 8 ──────┐
binname do stuff --key value --key=value -key -K -aBCd foo bar baz -- --key value bar -B
└───────────────────────────────────────── 9 ──────────────────────────────────────────┘
- Binary name. This is never passed to the parser.
- Command name.
- Option with a value. Option name can be in camel case or kebab case.
- Another way to specify an option with a value.
- Boolean options don't have to specify value to be true. Options can also be defined using a short option form.
- Short options group; usually used for boolean options.
- Parameters.
- Rest arguments appear after the
--
; they are not parsed, but still included in the result. - The whole command line.
The parser is strict and returns fully typed result. You can use it by calling parseArguments
function with the list of arguments and parser configuration:
import {parseArguments} from '@jakubmazanec/args';
let {command, parameters, options} = parseArguments(process.argv.slice(2), {
commands: ['run', 'build'],
parameters: [{
description: 'File name',
type: 'string',
required: true,
}],
options: {
help: {
type: 'boolean'
}
}
});
console.log(command); // type of `command` is `'run' | 'build' | undefined`
console.log(parameters); // type of `parameters` is `[string | undefined]`
console.log(options); // type of `options` is `{help: boolean | undefined}`
See ParserConfig
for more information about how to configure the
parser.
See API reference for auto-generated documentation.
If you want to contribute, see CONTRIBUTING for details.
This package is licensed under the GNU Lesser General Public License v3. See LICENSE for details.