UNPKG

798 BJavaScriptView Raw
1'use strict';
2
3// The actual option data.
4var data = {};
5
6// Get or set an option value.
7var option = module.exports = function(key, value) {
8 var no = key.match(/^no-(.+)$/);
9 if (arguments.length === 2) {
10 return (data[key] = value);
11 } else if (no) {
12 return data[no[1]] === false;
13 } else {
14 return data[key];
15 }
16};
17
18// Initialize option data.
19option.init = function(obj) {
20 return (data = obj || {});
21};
22
23// List of options as flags.
24option.flags = function() {
25 return Object.keys(data).filter(function(key) {
26 // Don't display empty arrays.
27 return !(Array.isArray(data[key]) && data[key].length === 0);
28 }).map(function(key) {
29 var val = data[key];
30 return '--' + (val === false ? 'no-' : '') + key +
31 (typeof val === 'boolean' ? '' : '=' + val);
32 });
33};