Socket
Socket
Sign inDemoInstall

minimist-options

Package Overview
Dependencies
3
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    minimist-options

Pretty options for minimist


Version published
Weekly downloads
11M
increased by1.88%
Maintainers
1
Install size
39.6 kB
Created
Weekly downloads
 

Package description

What is minimist-options?

The minimist-options npm package is designed to enhance the functionality of the minimist library, which is a popular argument parser for Node.js. Minimist-options allows for more detailed configuration of command line option parsing, including setting types, defaults, and aliases for options. This makes it easier to build complex command-line interfaces (CLIs) with more readable and maintainable code.

What are minimist-options's main functionalities?

Defining option types

This feature allows you to specify the type of value you expect for an option. For example, defining an option as a 'string' ensures that the parsed value will be treated as a string.

{"optionName": {"type": "string"}}

Setting default values

You can set default values for options, which will be used if the option is not provided by the user. This is useful for providing fallback values and making certain options optional.

{"optionName": {"type": "number", "default": 10}}

Using aliases

Aliases allow you to define short versions of option names, making your CLI easier to use. For example, an option '--name' could have an alias '-n', allowing it to be used interchangeably.

{"optionName": {"alias": "n"}}

Other packages similar to minimist-options

Readme

Source

minimist-options test

Write options for minimist and yargs in a comfortable way. Supports string, boolean, number and array options.

Installation

$ npm install --save minimist-options

Usage

const buildOptions = require('minimist-options');
const minimist = require('minimist');

const options = buildOptions({
	name: {
		type: 'string',
		alias: 'n',
		default: 'john'
	},

	force: {
		type: 'boolean',
		alias: ['f', 'o'],
		default: false
	},

	score: {
		type: 'number',
		alias: 's',
		default: 0
	},

	arr: {
		type: 'array',
		alias: 'a',
		default: []
	},

	strings: {
		type: 'string-array',
		alias: 's',
		default: ['a', 'b']
	},

	booleans: {
		type: 'boolean-array',
		alias: 'b',
		default: [true, false]
	},

	numbers: {
		type: 'number-array',
		alias: 'n',
		default: [0, 1]
	},

	published: 'boolean',

	// Special option for positional arguments (`_` in minimist)
	arguments: 'string'
});

const args = minimist(process.argv.slice(2), options);

instead of:

const minimist = require('minimist');

const options = {
	string: ['name', '_'],
	number: ['score'],
	array: [
		'arr',
		{key: 'strings', string: true},
		{key: 'booleans', boolean: true},
		{key: 'numbers', number: true}
	],
	boolean: ['force', 'published'],
	alias: {
		n: 'name',
		f: 'force',
		s: 'score',
		a: 'arr'
	},
	default: {
		name: 'john',
		f: false,
		score: 0,
		arr: []
	}
};

const args = minimist(process.argv.slice(2), options);

Array options

The array types are only supported by yargs.

minimist does not explicitly support array type options. If you set an option multiple times, it will indeed yield an array of values. However, if you only set it once, it will simply give the value as is, without wrapping it in an array. Thus, effectively ignoring {type: 'array'}.

{type: 'array'} is shorthand for {type: 'string-array'}. To have values coerced to boolean or number, use boolean-array or number-array, respectively.

License

MIT © Vadim Demedes

Keywords

FAQs

Last updated on 16 May 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc