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: 26 days 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 (3 months ago)
- Default Branch: master
- Last Pushed: 2025-04-17T13:39:51.000Z (about 1 month ago)
- Last Synced: 2025-04-28T15:15:41.171Z (26 days 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, stopOptions:
--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); // devconst cpuCount = parsedArgs.get('--cpu');
console.log(cpuCount); // 1const 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.