Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Smoren/argparse-ts

Repository files navigation

Argument Parser for TypeScript

npm npm Coverage Status Build and test Minified Size License: MIT

Overview

Modern CLI arguments parser for node.js (TypeScript / JavaScript).

Setup

npm i argparse-ts

Usage example

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

Api Reference

For detailed documentation and usage examples, please refer to API documentation

Unit testing

npm i
npm run test

License

ArgParse TS is licensed under the MIT License.

AltStyle によって変換されたページ (->オリジナル) /