101 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = setFromArgv; | ||
|  | 
 | ||
|  | var _utils = require('./utils'); | ||
|  | 
 | ||
|  | function _objectSpread(target) { | ||
|  |   for (var i = 1; i < arguments.length; i++) { | ||
|  |     var source = arguments[i] != null ? arguments[i] : {}; | ||
|  |     var ownKeys = Object.keys(source); | ||
|  |     if (typeof Object.getOwnPropertySymbols === 'function') { | ||
|  |       ownKeys = ownKeys.concat( | ||
|  |         Object.getOwnPropertySymbols(source).filter(function(sym) { | ||
|  |           return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
|  |         }) | ||
|  |       ); | ||
|  |     } | ||
|  |     ownKeys.forEach(function(key) { | ||
|  |       _defineProperty(target, key, source[key]); | ||
|  |     }); | ||
|  |   } | ||
|  |   return target; | ||
|  | } | ||
|  | 
 | ||
|  | function _defineProperty(obj, key, value) { | ||
|  |   if (key in obj) { | ||
|  |     Object.defineProperty(obj, key, { | ||
|  |       value: value, | ||
|  |       enumerable: true, | ||
|  |       configurable: true, | ||
|  |       writable: true | ||
|  |     }); | ||
|  |   } else { | ||
|  |     obj[key] = value; | ||
|  |   } | ||
|  |   return obj; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. | ||
|  |  * | ||
|  |  * This source code is licensed under the MIT license found in the | ||
|  |  * LICENSE file in the root directory of this source tree. | ||
|  |  */ | ||
|  | const specialArgs = ['_', '$0', 'h', 'help', 'config']; | ||
|  | 
 | ||
|  | function setFromArgv(options, argv) { | ||
|  |   const argvToOptions = Object.keys(argv) | ||
|  |     .filter(key => argv[key] !== undefined && specialArgs.indexOf(key) === -1) | ||
|  |     .reduce((options, key) => { | ||
|  |       switch (key) { | ||
|  |         case 'coverage': | ||
|  |           options.collectCoverage = argv[key]; | ||
|  |           break; | ||
|  | 
 | ||
|  |         case 'json': | ||
|  |           options.useStderr = argv[key]; | ||
|  |           break; | ||
|  | 
 | ||
|  |         case 'watchAll': | ||
|  |           options.watch = false; | ||
|  |           options.watchAll = argv[key]; | ||
|  |           break; | ||
|  | 
 | ||
|  |         case 'env': | ||
|  |           options.testEnvironment = argv[key]; | ||
|  |           break; | ||
|  | 
 | ||
|  |         case 'config': | ||
|  |           break; | ||
|  | 
 | ||
|  |         case 'coverageThreshold': | ||
|  |         case 'globals': | ||
|  |         case 'moduleNameMapper': | ||
|  |         case 'transform': | ||
|  |         case 'haste': | ||
|  |           const str = argv[key]; | ||
|  | 
 | ||
|  |           if ((0, _utils.isJSONString)(str)) { | ||
|  |             options[key] = JSON.parse(str); | ||
|  |           } | ||
|  | 
 | ||
|  |           break; | ||
|  | 
 | ||
|  |         default: | ||
|  |           options[key] = argv[key]; | ||
|  |       } | ||
|  | 
 | ||
|  |       return options; | ||
|  |     }, {}); | ||
|  |   return _objectSpread( | ||
|  |     {}, | ||
|  |     options, | ||
|  |     (0, _utils.isJSONString)(argv.config) ? JSON.parse(argv.config) : null, | ||
|  |     argvToOptions | ||
|  |   ); | ||
|  | } |