https://github.com/smoren/argparse-ts
Modern CLI arguments parser for node.js (TypeScript / JavaScript).
https://github.com/smoren/argparse-ts
argparse argparser args args-parser argsparse argsparse-library cli command-line command-line-interface command-line-tool node nodejs typescipt
Last synced: 12 months ago
JSON representation
Modern CLI arguments parser for node.js (TypeScript / JavaScript).
- Host: GitHub
- URL: https://github.com/smoren/argparse-ts
- Owner: Smoren
- License: mit
- Created: 2025-03-07T09:03:25.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-17T13:39:51.000Z (about 1 year ago)
- Last Synced: 2025-04-28T15:15:41.171Z (12 months ago)
- Topics: argparse, argparser, args, args-parser, argsparse, argsparse-library, cli, command-line, command-line-interface, command-line-tool, node, nodejs, typescipt
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/argparse-ts
- Size: 158 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Argument Parser for TypeScript
[](https://www.npmjs.com/package/argparse-ts)
[](https://www.npmjs.com/package/argparse-ts)
[](https://coveralls.io/github/Smoren/argparse-ts?branch=master)

[](https://bundlephobia.com/result?p=argparse-ts)
[](https://opensource.org/licenses/MIT)
Overview
--------
Modern CLI arguments parser for node.js (TypeScript / JavaScript).
Setup
-----
```bash
npm i argparse-ts
```
Usage example
-------------
```typescript
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 Container name
Type: string (not empty)
operations ...
Operations to run
Type: Array (not empty)
Allowed values: build, clear, sync, start, stop
Options:
--mode Run mode
Type: string
Default value: "prod"
Allowed values: dev, test, prod
--cpu CPU cores count to use
Type: number
Default value: 1
--use-gpu Use GPU flag
Type: boolean
Default value: false
-e ..., --extra-services ...
Extra services to include
Type: Array
*/
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('container');
console.log(containerName); // 'main'
const operations = parsedArgs.get('operations');
console.log(operations); // ['clear', 'build', 'start', 'sync']
const mode = parsedArgs.get('--mode');
console.log(mode); // dev
const cpuCount = parsedArgs.get('--cpu');
console.log(cpuCount); // 1
const useGpu = parsedArgs.get('--use-gpu');
console.log(useGpu); // true
```
Api Reference
-------------
For detailed documentation and usage examples, please refer to [API documentation](https://smoren.github.io/argparse-ts/)
Unit testing
------------
```bash
npm i
npm run test
```
License
-------
ArgParse TS is licensed under the MIT License.