{"id":26257144,"url":"https://github.com/smoren/argparse-ts","last_synced_at":"2025-04-28T15:15:53.290Z","repository":{"id":281157680,"uuid":"944387007","full_name":"Smoren/argparse-ts","owner":"Smoren","description":"Modern CLI arguments parser for node.js (TypeScript / JavaScript).","archived":false,"fork":false,"pushed_at":"2025-04-17T13:39:51.000Z","size":162,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-28T15:15:41.171Z","etag":null,"topics":["argparse","argparser","args","args-parser","argsparse","argsparse-library","cli","command-line","command-line-interface","command-line-tool","node","nodejs","typescipt"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/argparse-ts","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Smoren.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-07T09:03:25.000Z","updated_at":"2025-04-17T13:38:46.000Z","dependencies_parsed_at":"2025-03-07T10:22:10.399Z","dependency_job_id":"0439a90a-0075-4b9f-8135-87fcc322fdd2","html_url":"https://github.com/Smoren/argparse-ts","commit_stats":null,"previous_names":["smoren/argparse-ts"],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fargparse-ts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fargparse-ts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fargparse-ts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Smoren%2Fargparse-ts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Smoren","download_url":"https://codeload.github.com/Smoren/argparse-ts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251336389,"owners_count":21573188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argparse","argparser","args","args-parser","argsparse","argsparse-library","cli","command-line","command-line-interface","command-line-tool","node","nodejs","typescipt"],"created_at":"2025-03-13T20:28:39.927Z","updated_at":"2025-04-28T15:15:53.277Z","avatar_url":"https://github.com/Smoren.png","language":"TypeScript","readme":"# Argument Parser for TypeScript\n\n[![npm](https://img.shields.io/npm/v/argparse-ts.svg)](https://www.npmjs.com/package/argparse-ts)\n[![npm](https://img.shields.io/npm/dm/argparse-ts.svg?style=flat)](https://www.npmjs.com/package/argparse-ts)\n[![Coverage Status](https://coveralls.io/repos/github/Smoren/argparse-ts/badge.svg?branch=master\u0026rand=222)](https://coveralls.io/github/Smoren/argparse-ts?branch=master)\n![Build and test](https://github.com/Smoren/argparse-ts/actions/workflows/test.yml/badge.svg)\n[![Minified Size](https://badgen.net/bundlephobia/minzip/argparse-ts)](https://bundlephobia.com/result?p=argparse-ts)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nOverview\n--------\n\nModern CLI arguments parser for node.js (TypeScript / JavaScript).\n\nSetup\n-----\n\n```bash\nnpm i argparse-ts\n```\n\nUsage example\n-------------\n\n```typescript\nimport { ArgsParser } from \"argparse-ts\";\n\nconst parser = new ArgsParser([\n  {\n    name: 'container',\n    description: \"Container name\",\n    type: 'string',\n  },\n  {\n    name: 'operations',\n    description: \"Operations to run\",\n    type: 'string',\n    nargs: '+',\n    choices: ['build', 'clear', 'sync', 'start', 'stop'],\n  },\n  {\n    name: '--mode',\n    description: \"Run mode\",\n    type: 'string',\n    nargs: '?',\n    choices: ['dev', 'test', 'prod'],\n    default: 'prod',\n  },\n  {\n    name: '--cpu',\n    description: \"CPU cores count to use\",\n    type: 'number',\n    nargs: '?',\n    default: 1,\n  },\n  {\n    name: '--use-gpu',\n    description: \"Use GPU flag\",\n    type: 'boolean',\n    const: true,\n    default: false,\n  },\n  {\n    name: '--extra-services',\n    alias: '-e',\n    description: \"Extra services to include\",\n    type: 'string',\n    nargs: '*',\n  },\n]);\n\nconsole.log(parser.help);\n\n/*\nPositional arguments:\n\n    container \u003cstring\u003e  Container name\n                        Type: string (not empty)\n\n    operations \u003cstring\u003e \u003cstring\u003e ...\n                        Operations to run\n                        Type: Array\u003cstring\u003e (not empty)\n                        Allowed values: build, clear, sync, start, stop\n\nOptions:\n\n    --mode \u003cstring\u003e     Run mode\n                        Type: string\n                        Default value: \"prod\"\n                        Allowed values: dev, test, prod\n\n    --cpu \u003cnumber\u003e      CPU cores count to use\n                        Type: number\n                        Default value: 1\n\n    --use-gpu           Use GPU flag\n                        Type: boolean\n                        Default value: false\n\n    -e \u003cstring\u003e \u003cstring\u003e ..., --extra-services \u003cstring\u003e \u003cstring\u003e ...\n                        Extra services to include\n                        Type: Array\u003cstring\u003e\n*/\n\nconst argv = ['main', 'clear', 'build', 'start', 'sync', '--mode', 'dev', '--use-gpu', '-e', 'logger', 'profiler', 'tester'];\nconst parsedArgs = parser.parse(argv);\n\nconsole.log(parsedArgs.positional);\n/*\n{\n  'container': 'main',\n  'operations': ['clear', 'build', 'start', 'sync'],\n}\n*/\n\nconsole.log(parsedArgs.options);\n/*\n{\n  'mode': 'dev',\n  'cpu': 1,\n  'use-gpu': true,\n  'extra-services': ['logger', 'profiler', 'tester'],\n}\n*/\n\nconst containerName = parsedArgs.get\u003cstring\u003e('container');\nconsole.log(containerName); // 'main'\n\nconst operations = parsedArgs.get\u003cstring[]\u003e('operations');\nconsole.log(operations); // ['clear', 'build', 'start', 'sync']\n\nconst mode = parsedArgs.get\u003cstring\u003e('--mode');\nconsole.log(mode); // dev\n\nconst cpuCount = parsedArgs.get\u003cnumber\u003e('--cpu');\nconsole.log(cpuCount); // 1\n\nconst useGpu = parsedArgs.get\u003cboolean\u003e('--use-gpu');\nconsole.log(useGpu); // true\n```\n\nApi Reference\n-------------\n\nFor detailed documentation and usage examples, please refer to [API documentation](https://smoren.github.io/argparse-ts/)\n\nUnit testing\n------------\n\n```bash\nnpm i\nnpm run test\n```\n\nLicense\n-------\n\nArgParse TS is licensed under the MIT License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmoren%2Fargparse-ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmoren%2Fargparse-ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmoren%2Fargparse-ts/lists"}