blob: fa509b751c1455f8561f2fffe8cca79fafb0db98 [file] [log] [blame]
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.run = run;
function _os() {
const data = require('os');
_os = function () {
return data;
};
return data;
}
function path() {
const data = _interopRequireWildcard(require('path'));
path = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require('chalk'));
_chalk = function () {
return data;
};
return data;
}
function _yargs() {
const data = _interopRequireDefault(require('yargs'));
_yargs = function () {
return data;
};
return data;
}
function _console() {
const data = require('@jest/console');
_console = function () {
return data;
};
return data;
}
function _jestUtil() {
const data = require('jest-util');
_jestUtil = function () {
return data;
};
return data;
}
function _jestValidate() {
const data = require('jest-validate');
_jestValidate = function () {
return data;
};
return data;
}
function _jestConfig() {
const data = require('jest-config');
_jestConfig = function () {
return data;
};
return data;
}
function _version() {
const data = require('../version');
_version = function () {
return data;
};
return data;
}
var args = _interopRequireWildcard(require('./args'));
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function _getRequireWildcardCache() {
if (typeof WeakMap !== 'function') return null;
var cache = new WeakMap();
_getRequireWildcardCache = function () {
return cache;
};
return cache;
}
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj;
}
if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) {
return {default: obj};
}
var cache = _getRequireWildcardCache();
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {};
var hasPropertyDescriptor =
Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor
? Object.getOwnPropertyDescriptor(obj, key)
: null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
/**
* 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.
*/
async function run(cliArgv, cliInfo) {
let argv;
if (cliArgv) {
argv = cliArgv;
} else {
argv = _yargs()
.default.usage(args.usage)
.help(false)
.version(false)
.options(args.options).argv;
(0, _jestValidate().validateCLIOptions)(argv, {
...args.options,
deprecationEntries: _jestConfig().deprecationEntries
});
}
if (argv.help) {
_yargs().default.showHelp();
process.on('exit', () => (process.exitCode = 1));
return;
}
if (argv.version) {
console.log(`v${_version().VERSION}\n`);
return;
}
if (!argv._.length) {
console.log('Please provide a path to a script. (See --help for details)');
process.on('exit', () => (process.exitCode = 1));
return;
}
const root = (0, _jestUtil().tryRealpath)(process.cwd());
const filePath = path().resolve(root, argv._[0]);
if (argv.debug) {
const info = cliInfo ? ', ' + cliInfo.join(', ') : '';
console.log(`Using Jest Runtime v${_version().VERSION}${info}`);
}
const options = await (0, _jestConfig().readConfig)(argv, root);
const globalConfig = options.globalConfig; // Always disable automocking in scripts.
const config = {...options.projectConfig, automock: false};
const Runtime = require('..');
try {
var _runtime$unstable_sho2;
const hasteMap = await Runtime.createContext(config, {
maxWorkers: Math.max((0, _os().cpus)().length - 1, 1),
watchman: globalConfig.watchman
});
const Environment = require(config.testEnvironment);
const environment = new Environment(config);
(0, _jestUtil().setGlobal)(
environment.global,
'console',
new (_console().CustomConsole)(process.stdout, process.stderr)
);
(0, _jestUtil().setGlobal)(environment.global, 'jestProjectConfig', config);
(0, _jestUtil().setGlobal)(
environment.global,
'jestGlobalConfig',
globalConfig
);
const runtime = new Runtime(
config,
environment,
hasteMap.resolver,
undefined,
undefined,
filePath
);
for (const path of config.setupFiles) {
var _runtime$unstable_sho;
// TODO: remove ? in Jest 26
const esm =
(_runtime$unstable_sho = runtime.unstable_shouldLoadAsEsm) === null ||
_runtime$unstable_sho === void 0
? void 0
: _runtime$unstable_sho.call(runtime, path);
if (esm) {
await runtime.unstable_importModule(path);
} else {
runtime.requireModule(path);
}
} // TODO: remove ? in Jest 26
const esm =
(_runtime$unstable_sho2 = runtime.unstable_shouldLoadAsEsm) === null ||
_runtime$unstable_sho2 === void 0
? void 0
: _runtime$unstable_sho2.call(runtime, filePath);
if (esm) {
await runtime.unstable_importModule(filePath);
} else {
runtime.requireModule(filePath);
}
} catch (e) {
console.error(_chalk().default.red(e.stack || e));
process.on('exit', () => (process.exitCode = 1));
}
}