npm npm Coverage Status Build and test Minified Size License: MIT
Modern CLI arguments parser for node.js (TypeScript / JavaScript).
npm i argparse-ts
import { ArgsParser } from "argparse-ts"; const parser = new ArgsParser([ { name: 'container', description: "Container name", type: 'string', }, { name: 'operations', description: "Operations to run", type: 'string', nargs: '+', choices: ['build', 'clear', 'sync', 'start', 'stop'], }, { name: '--mode', description: "Run mode", type: 'string', nargs: '?', choices: ['dev', 'test', 'prod'], default: 'prod', }, { name: '--cpu', description: "CPU cores count to use", type: 'number', nargs: '?', default: 1, }, { name: '--use-gpu', description: "Use GPU flag", type: 'boolean', const: true, default: false, }, { name: '--extra-services', alias: '-e', description: "Extra services to include", type: 'string', nargs: '*', }, ]); console.log(parser.help); /* Positional arguments: container <string> Container name Type: string (not empty) operations <string> <string> ... Operations to run Type: Array<string> (not empty) Allowed values: build, clear, sync, start, stop Options: --mode <string> Run mode Type: string Default value: "prod" Allowed values: dev, test, prod --cpu <number> CPU cores count to use Type: number Default value: 1 --use-gpu Use GPU flag Type: boolean Default value: false -e <string> <string> ..., --extra-services <string> <string> ... Extra services to include Type: Array<string> */ const argv = ['main', 'clear', 'build', 'start', 'sync', '--mode', 'dev', '--use-gpu', '-e', 'logger', 'profiler', 'tester']; const parsedArgs = parser.parse(argv); console.log(parsedArgs.positional); /* { 'container': 'main', 'operations': ['clear', 'build', 'start', 'sync'], } */ console.log(parsedArgs.options); /* { 'mode': 'dev', 'cpu': 1, 'use-gpu': true, 'extra-services': ['logger', 'profiler', 'tester'], } */ const containerName = parsedArgs.get<string>('container'); console.log(containerName); // 'main' const operations = parsedArgs.get<string[]>('operations'); console.log(operations); // ['clear', 'build', 'start', 'sync'] const mode = parsedArgs.get<string>('--mode'); console.log(mode); // dev const cpuCount = parsedArgs.get<number>('--cpu'); console.log(cpuCount); // 1 const useGpu = parsedArgs.get<boolean>('--use-gpu'); console.log(useGpu); // true
For detailed documentation and usage examples, please refer to API documentation
npm i
npm run testArgParse TS is licensed under the MIT License.