| 821 | return flags.allBools && /^--[^=]+$/.test(arg) || get(flags.bools, key) || !!get(flags.strings, key) || !!get(aliases, key); |
| 822 | } |
| 823 | function setKey(obj, name, value, collect = true) { |
| 824 | let o = obj; |
| 825 | const keys = name.split("."); |
| 826 | keys.slice(0, -1).forEach(function(key) { |
| 827 | if (get(o, key) === undefined) { |
| 828 | o[key] = {}; |
| 829 | } |
| 830 | o = get(o, key); |
| 831 | }); |
| 832 | const key = keys[keys.length - 1]; |
| 833 | const collectable = collect && !!get(flags.collect, name); |
| 834 | if (!collectable) { |
| 835 | o[key] = value; |
| 836 | } else if (get(o, key) === undefined) { |
| 837 | o[key] = [ |
| 838 | value |
| 839 | ]; |
| 840 | } else if (Array.isArray(get(o, key))) { |
| 841 | o[key].push(value); |
| 842 | } else { |
| 843 | o[key] = [ |
| 844 | get(o, key), |
| 845 | value |
| 846 | ]; |
| 847 | } |
| 848 | } |
| 849 | function setArg(key, val, arg = undefined, collect) { |
| 850 | if (arg && flags.unknownFn && !argDefined(key, arg)) { |
| 851 | if (flags.unknownFn(arg, key, val) === false) return; |