'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 _jestConfig() { const data = require('jest-config'); _jestConfig = 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 _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)); } }