From 806ddd6cacacb728e42828113e75c6700ffe4366 Mon Sep 17 00:00:00 2001 From: Mark Birbeck Date: Wed, 20 Dec 2017 05:16:46 +0000 Subject: [PATCH] feat: merge array from arguments with array from config (#83) --- index.js | 2 +- test/yargs-parser.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 599f18ee..71d1a0c5 100644 --- a/index.js +++ b/index.js @@ -487,7 +487,7 @@ function parse (args, opts) { } else { // setting arguments via CLI takes precedence over // values within the config file. - if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey])) { + if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey]) || (flags.arrays[fullKey])) { setArg(fullKey, value) } } diff --git a/test/yargs-parser.js b/test/yargs-parser.js index cd385609..cf5f0ba6 100644 --- a/test/yargs-parser.js +++ b/test/yargs-parser.js @@ -450,6 +450,18 @@ describe('yargs-parser', function () { argv.should.have.property('foo').and.deep.equal('baz') }) + it('should combine values from config file and argv, if argv value is an array', function () { + var argv = parser(['--foo', 'bar'], { + config: ['settings'], + array: ['foo'], + default: { + settings: jsonPath + } + }) + + argv.should.have.property('foo').and.deep.equal(['bar', 'baz']) + }) + it('should use value from config file, if argv key is a boolean', function () { var argv = parser([], { config: ['settings'],