89 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			89 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = void 0; | ||
|  | 
 | ||
|  | function _path() { | ||
|  |   const data = _interopRequireDefault(require('path')); | ||
|  | 
 | ||
|  |   _path = function _path() { | ||
|  |     return data; | ||
|  |   }; | ||
|  | 
 | ||
|  |   return data; | ||
|  | } | ||
|  | 
 | ||
|  | function _fs() { | ||
|  |   const data = _interopRequireDefault(require('fs')); | ||
|  | 
 | ||
|  |   _fs = function _fs() { | ||
|  |     return data; | ||
|  |   }; | ||
|  | 
 | ||
|  |   return data; | ||
|  | } | ||
|  | 
 | ||
|  | var _jsonlint = _interopRequireDefault(require('./vendor/jsonlint')); | ||
|  | 
 | ||
|  | var _constants = require('./constants'); | ||
|  | 
 | ||
|  | function _interopRequireDefault(obj) { | ||
|  |   return obj && obj.__esModule ? obj : {default: 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. | ||
|  |  */ | ||
|  | // @ts-ignore: vendored
 | ||
|  | // Read the configuration and set its `rootDir`
 | ||
|  | // 1. If it's a `package.json` file, we look into its "jest" property
 | ||
|  | // 2. For any other file, we just require it.
 | ||
|  | var _default = configPath => { | ||
|  |   const isJSON = configPath.endsWith('.json'); | ||
|  |   let configObject; | ||
|  | 
 | ||
|  |   try { | ||
|  |     configObject = require(configPath); | ||
|  |   } catch (error) { | ||
|  |     if (isJSON) { | ||
|  |       throw new Error( | ||
|  |         `Jest: Failed to parse config file ${configPath}\n` + | ||
|  |           `  ${_jsonlint.default.errors( | ||
|  |             _fs().default.readFileSync(configPath, 'utf8') | ||
|  |           )}`
 | ||
|  |       ); | ||
|  |     } else { | ||
|  |       throw error; | ||
|  |     } | ||
|  |   } | ||
|  | 
 | ||
|  |   if (configPath.endsWith(_constants.PACKAGE_JSON)) { | ||
|  |     // Event if there's no "jest" property in package.json we will still use
 | ||
|  |     // an empty object.
 | ||
|  |     configObject = configObject.jest || {}; | ||
|  |   } | ||
|  | 
 | ||
|  |   if (configObject.rootDir) { | ||
|  |     // We don't touch it if it has an absolute path specified
 | ||
|  |     if (!_path().default.isAbsolute(configObject.rootDir)) { | ||
|  |       // otherwise, we'll resolve it relative to the file's __dirname
 | ||
|  |       configObject.rootDir = _path().default.resolve( | ||
|  |         _path().default.dirname(configPath), | ||
|  |         configObject.rootDir | ||
|  |       ); | ||
|  |     } | ||
|  |   } else { | ||
|  |     // If rootDir is not there, we'll set it to this file's __dirname
 | ||
|  |     configObject.rootDir = _path().default.dirname(configPath); | ||
|  |   } | ||
|  | 
 | ||
|  |   return configObject; | ||
|  | }; | ||
|  | 
 | ||
|  | exports.default = _default; |