text: '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;
  