Skip to content

Commit adfe9e8

Browse files
authoredJun 30, 2021
Add ignoreTrue option (#43)
1 parent b80546a commit adfe9e8

File tree

5 files changed

+20
-1
lines changed

5 files changed

+20
-1
lines changed
 

‎index.d.ts

+7
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ export interface Options {
4949
*/
5050
readonly shortFlag?: boolean;
5151

52+
/**
53+
Exclude `true` values. Can be useful when dealing with argument parsers that only expect negated arguments like `--no-foo`.
54+
55+
@default false
56+
*/
57+
readonly ignoreTrue?: boolean;
58+
5259
/**
5360
Exclude `false` values. Can be useful when dealing with strict argument parsers that throw on unknown arguments like `--no-foo`.
5461

‎index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export default function dargs(object, options) {
7777
continue;
7878
}
7979

80-
if (value === true) {
80+
if (value === true && !options.ignoreTrue) {
8181
pushArguments(key, '');
8282
}
8383

‎index.test-d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ expectType<string[]>(dargs(object, {includes}));
2121
expectType<string[]>(dargs(object, {aliases}));
2222
expectType<string[]>(dargs(object, {useEquals: false}));
2323
expectType<string[]>(dargs(object, {shortFlag: true}));
24+
expectType<string[]>(dargs(object, {ignoreTrue: true}));
2425
expectType<string[]>(dargs(object, {ignoreFalse: true}));
2526
expectType<string[]>(dargs(object, {allowCamelCase: true}));
2627

‎readme.md

+7
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,13 @@ console.log(dargs({a: true}, {shortFlag: false}));
151151
//=> ['--a']
152152
```
153153

154+
##### ignoreTrue
155+
156+
Type: `boolean`\
157+
Default: `false`
158+
159+
Exclude `true` values. Can be useful when dealing with argument parsers that only expect negated arguments like `--no-foo`.
160+
154161
##### ignoreFalse
155162

156163
Type: `boolean`\

‎test.js

+4
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ test('excludes and includes options', t => {
113113
]);
114114
});
115115

116+
test('option to ignore true values', t => {
117+
t.deepEqual(dargs({foo: true}, {ignoreTrue: true}), []);
118+
});
119+
116120
test('option to ignore false values', t => {
117121
t.deepEqual(dargs({foo: false}, {ignoreFalse: true}), []);
118122
});

0 commit comments

Comments
 (0)
Please sign in to comment.