11module . exports = getSettings ;
22
33const debug = require ( 'debug' ) ( 'clite' ) ;
4- const defaultsDeep = require ( 'lodash.defaultsdeep ' ) ;
4+ const mergeWith = require ( 'lodash.mergewith ' ) ;
55
66function getSettings ( options ) {
77 var settings = { } ;
88 var defaults = require ( './defaults' ) ( ) ;
99 checkFor ( 'version' , options , defaults ) ;
1010 checkFor ( 'help' , options , defaults ) ;
1111
12- defaultsDeep ( settings , options , defaults ) ; // clone
12+ mergeWith ( settings , defaults , options , customizer ) ;
1313 return settings ;
1414}
1515
16+ function customizer ( obj , src ) {
17+ if ( Array . isArray ( obj ) ) {
18+ return obj . concat ( src ) ;
19+ }
20+ }
21+
1622function checkFor ( key , config , defaults ) {
1723 if ( ! config ) {
1824 config = { } ;
@@ -22,7 +28,7 @@ function checkFor(key, config, defaults) {
2228 return ;
2329 }
2430
25- debug ( 'stripping internal command' ) ;
31+ debug ( 'stripping internal command: %s' , key ) ;
2632
2733 delete defaults . commands [ key ] ;
2834 defaults . booleans . splice ( defaults . booleans . indexOf ( key ) , 1 ) ;
0 commit comments