Wargs - Wrong Args Parser

0.10.0 · abandoned · verified Tue Apr 21

Wargs is a JavaScript utility designed for parsing command-line-like arguments from both strings and `argv`-style arrays, distinguishing itself from conventional argument parsers like `commander` or `yargs`. Unlike most alternatives, it leverages regular expressions internally, allowing it to process raw string inputs which traditional parsers typically do not support. It categorizes parsed arguments into `_` (positional arguments), `raw` (arguments after `--`), `data` (key=value pairs), `flags` (boolean flags like `--json` or `-x`), and `params` (key:value pairs). The current stable version is 0.10.0, however, the project appears to be abandoned with the last commit made in September 2020 and the latest npm publish being 5 years ago, indicating no ongoing development or maintenance. This tool is particularly suited for scenarios where arguments might come from varied sources beyond `process.argv` and require a flexible, regex-driven extraction approach.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates parsing both string and array inputs, and accessing the different argument categories (`_`, `raw`, `data`, `flags`, `params`) along with options like `camelCase` and `format`.

import wargs from 'wargs';

const strInput = '/ _csrf=`token` --json accept:"text/plain; charset=utf8" -- x foo:bar';
const arrayInput = ['/', '_csrf=`token`', '--json', 'accept:text/plain; charset=utf8', '--', 'x', 'foo:bar'];

console.log('--- Parsing String Input ---');
const parsedFromString = wargs(strInput, { camelCase: true });
console.log('Parsed Object:', parsedFromString);
console.log('Positional arguments (_):', parsedFromString._);
console.log('Raw arguments (raw):', parsedFromString.raw);
console.log('Data (key=value):', parsedFromString.data);
console.log('Flags (--flag, -f):', parsedFromString.flags);
console.log('Parameters (key:value):', parsedFromString.params);

console.log('\n--- Parsing Array Input ---');
const parsedFromArray = wargs(arrayInput, { format: v => String(v).toUpperCase() });
console.log('Parsed Object:', parsedFromArray);
console.log('Positional arguments (_):', parsedFromArray._);
console.log('Raw arguments (raw):', parsedFromArray.raw);
console.log('Data (key=value):', parsedFromArray.data);
console.log('Flags (--flag, -f):', parsedFromArray.flags);
console.log('Parameters (key:value):', parsedFromArray.params);

view raw JSON →