{"id":23074232,"url":"https://github.com/ponlawat-w/flags-args-readline","last_synced_at":"2025-04-03T11:42:46.175Z","repository":{"id":57237854,"uuid":"240298698","full_name":"ponlawat-w/flags-args-readline","owner":"ponlawat-w","description":"Command line arguments reader from specified flags, with readline prompt when value is not specified.","archived":false,"fork":false,"pushed_at":"2020-02-13T17:06:07.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T13:36:29.216Z","etag":null,"topics":["arguments","arguments-reader","cmd","flags","npm","parser","reader"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/flags-args-readline","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ponlawat-w.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-13T15:49:25.000Z","updated_at":"2021-03-06T11:17:30.000Z","dependencies_parsed_at":"2022-08-26T15:01:43.962Z","dependency_job_id":null,"html_url":"https://github.com/ponlawat-w/flags-args-readline","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponlawat-w%2Fflags-args-readline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponlawat-w%2Fflags-args-readline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponlawat-w%2Fflags-args-readline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponlawat-w%2Fflags-args-readline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ponlawat-w","download_url":"https://codeload.github.com/ponlawat-w/flags-args-readline/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246998135,"owners_count":20866690,"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":["arguments","arguments-reader","cmd","flags","npm","parser","reader"],"created_at":"2024-12-16T08:27:34.354Z","updated_at":"2025-04-03T11:42:46.150Z","avatar_url":"https://github.com/ponlawat-w.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flag-args\nCommand line arguments reader from specified flags, with readline prompt when value is not specified.\n\n## 1) Arguments Reader\n\n### Initialisation\n```js\n// Initialise from all function objects\nconst FlagArgs = require('flags-args-readline');\nconst args = FlagArgs.readArgs(['-f', '--file', '-t', '--target']);\n\n// Initialise from only `readArgs` object\nconst { readArgs } = require('flags-args-readline');\nconst args = readArgs(['-f', '--file', '-t', '--target']);\n```\n\n### Methods\n\n#### 1. `has(params: string[]|string): bool`\nReturn `true` if there is value of that given name.\n\n**Examples**\n```js\n/* COMMAND LINE:\n  node test.js --target ./data.txt -a\n*/\n\nconst args = readArgs(['-t', '--target', '-a']);\nargs.has('-t');               // false\nargs.has('--target');         // true\nargs.has(['-t', '--target']); // true\nargs.has('-a');               // false\n```\n\n#### 2. `get(params: string[]|string): string`\nReturn value of specified argument name.\n\n**Examples**\n```js\n/* COMMAND LINE:\n  node test.js --source ./data.txt -t ./out.txt\n*/\n\nconst args = readArgs(\n  ['-s', '--source', '-t', '--target']\n);\nargs.get(['-s', '--source']); // \"./data.txt\"\nargs.get(['-t', '--target']); // \"./out.txt\"\nargs.get('-t');               // \"./out.txt\"\nargs.get('--target');         // undefined\n```\n\n#### 3. `getOrReadline(params: string[]|string): string`\nIf there is value given in command line, return the value. Otherwise, show interactive line reader and read line from user's input, then return the value.\n\n**Examples**\n```js\n/* COMMAND LINE:\n  node test.js -s ./data.txt\n*/\n\nconst args = readArgs(\n  ['-s', '--source', '-t', '--target']\n);\n\ntemp = args.getOrReadline(['-s', '--source'], 'Where is source file?: ');\n// ↑ \"./data.txt\"\n\ntemp = args.getOrReadline(['-t', '--target'], 'Where is target file?: ');\n// ↑ Pause program, print \"Where is target file?: \" and then wait for user to input a line. After user has submit, read the line and return the value.\n\nargs.has(['-t', '--target']); // false\n// ↑ using `getOrReadline` will not change aruments records in `args`, the value from readline is one-time use.\n```\n\n### Accessing Values Directly\n\n**Examples**\n\n```js\n/* COMMAND LINE:\n  node test.js -t ./out.txt\n*/\nconst args = readArgs(\n  ['-t', '--target', '-s', '--source']\n);\nargs.args['-t'];        // \"./out.txt\"\nargs.args['--target'];  // undefined\nargs.args['-s'];        // undefined\nargs.args['--source'];  // undefined\n```\n\n---\n\n## 2) Flags Reader\n\n### Initialisation\n```js\n// Initialise from all function objects\nconst FlagArgs = require('flags-args-readline');\nconst args = FlagArgs.readFlags(['-a', '--all']);\n\n// Initialise from only `readFlags` object\nconst { readFlags } = require('flags-args-readline');\nconst args = readFlags(['-a', '--all']);\n```\n\n### Methods\n\n#### `has(string[]|string): bool`\n\nReturn `true` if there is specified flag given from command line arguments. The logical operator, in case of array, is OR.\n\n**Examples**\n```js\n/* COMMAND LINE:\n  node test.js -a\n*/\nconst flags = readFlags(['-a', '--all']);\nflags.has(['-a', '--all']); // true\nflags.has('-a');            // true\nflags.has('--all');         // false\nflags.has('-t');            // false\n```\n\n### Accessing Values Directly\n\n**Examples**\n```js\n/* COMMAND LINE:\n  node test.js -a -u -t\n*/\nconst flags = readFlags(['-a', '-u', '-s']);\nflags.flags; // ['-a', '-u']\n```\n\n---\n\n## Using with `npm` command\n\nReminding that arguments passed from `npm` commands, such as `npm start` or `npm run`, those arguments belong to `npm`, not the node file. For this reason, to use the library with `npm`, the arguments should be passed after `--` symbol.\n\n**Examples**\n\n```js\nconst args = parseArgs(['-s', '-t']);\nargs.get('-s');\n\n// From `npm run my-command -s something`     → undefined\n// From `node run my-command -- -s something` → \"something\"\n```\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponlawat-w%2Fflags-args-readline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fponlawat-w%2Fflags-args-readline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponlawat-w%2Fflags-args-readline/lists"}