129 lines
4.2 KiB
JavaScript
129 lines
4.2 KiB
JavaScript
'use strict'; /**
|
|
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
*
|
|
*/
|
|
|
|
|
|
|
|
|
|
const path = require('path');var _require =
|
|
require('./utils');const getTestEnvironment = _require.getTestEnvironment,isJSONString = _require.isJSONString;
|
|
const findConfig = require('./findConfig');
|
|
const normalize = require('./normalize');
|
|
|
|
function readConfig(
|
|
argv,
|
|
packageRoot)
|
|
|
|
|
|
|
|
|
|
{
|
|
const rawOptions = readOptions(argv, packageRoot);var _normalize =
|
|
normalize(rawOptions, argv);const options = _normalize.options,hasDeprecationWarnings = _normalize.hasDeprecationWarnings;var _getConfigs =
|
|
getConfigs(options);const globalConfig = _getConfigs.globalConfig,projectConfig = _getConfigs.projectConfig;
|
|
return {
|
|
config: projectConfig,
|
|
globalConfig,
|
|
hasDeprecationWarnings };
|
|
|
|
}
|
|
|
|
const parseConfig = argv =>
|
|
isJSONString(argv.config) ? JSON.parse(argv.config) : argv.config;
|
|
|
|
const readOptions = (argv, root) => {
|
|
const rawOptions = parseConfig(argv);
|
|
|
|
if (typeof rawOptions === 'object') {
|
|
const config = Object.assign({}, rawOptions);
|
|
config.rootDir = config.rootDir || root;
|
|
return config;
|
|
}
|
|
|
|
if (typeof rawOptions === 'string') {
|
|
root = path.resolve(process.cwd(), rawOptions);
|
|
}
|
|
|
|
return findConfig(root);
|
|
};
|
|
|
|
const getConfigs =
|
|
options =>
|
|
{
|
|
return {
|
|
globalConfig: Object.freeze({
|
|
bail: options.bail,
|
|
collectCoverage: options.collectCoverage,
|
|
collectCoverageFrom: options.collectCoverageFrom,
|
|
collectCoverageOnlyFrom: options.collectCoverageOnlyFrom,
|
|
coverageDirectory: options.coverageDirectory,
|
|
coverageReporters: options.coverageReporters,
|
|
coverageThreshold: options.coverageThreshold,
|
|
expand: options.expand,
|
|
forceExit: options.forceExit,
|
|
logHeapUsage: options.logHeapUsage,
|
|
mapCoverage: options.mapCoverage,
|
|
noStackTrace: options.noStackTrace,
|
|
notify: options.notify,
|
|
projects: options.projects,
|
|
replname: options.replname,
|
|
reporters: options.reporters,
|
|
rootDir: options.rootDir,
|
|
silent: options.silent,
|
|
testNamePattern: options.testNamePattern,
|
|
testPathPattern: '',
|
|
testResultsProcessor: options.testResultsProcessor,
|
|
updateSnapshot: options.updateSnapshot,
|
|
useStderr: options.useStderr,
|
|
verbose: options.verbose,
|
|
watch: options.watch,
|
|
watchman: options.watchman }),
|
|
|
|
projectConfig: Object.freeze({
|
|
automock: options.automock,
|
|
browser: options.browser,
|
|
cache: options.cache,
|
|
cacheDirectory: options.cacheDirectory,
|
|
clearMocks: options.clearMocks,
|
|
coveragePathIgnorePatterns: options.coveragePathIgnorePatterns,
|
|
globals: options.globals,
|
|
haste: options.haste,
|
|
moduleDirectories: options.moduleDirectories,
|
|
moduleFileExtensions: options.moduleFileExtensions,
|
|
moduleLoader: options.moduleLoader,
|
|
moduleNameMapper: options.moduleNameMapper,
|
|
modulePathIgnorePatterns: options.modulePathIgnorePatterns,
|
|
modulePaths: options.modulePaths,
|
|
name: options.name,
|
|
resetMocks: options.resetMocks,
|
|
resetModules: options.resetModules,
|
|
resolver: options.resolver,
|
|
rootDir: options.rootDir,
|
|
roots: options.roots,
|
|
setupFiles: options.setupFiles,
|
|
setupTestFrameworkScriptFile: options.setupTestFrameworkScriptFile,
|
|
snapshotSerializers: options.snapshotSerializers,
|
|
testEnvironment: options.testEnvironment,
|
|
testMatch: options.testMatch,
|
|
testPathIgnorePatterns: options.testPathIgnorePatterns,
|
|
testRegex: options.testRegex,
|
|
testRunner: options.testRunner,
|
|
testURL: options.testURL,
|
|
timers: options.timers,
|
|
transform: options.transform,
|
|
transformIgnorePatterns: options.transformIgnorePatterns,
|
|
unmockedModulePathPatterns: options.unmockedModulePathPatterns }) };
|
|
|
|
|
|
};
|
|
|
|
module.exports = {
|
|
getTestEnvironment,
|
|
normalize,
|
|
readConfig }; |