index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.run = run;
  6. var _chalk;
  7. function _load_chalk() {
  8. return _chalk = _interopRequireDefault(require('chalk'));
  9. }
  10. var _os;
  11. function _load_os() {
  12. return _os = _interopRequireDefault(require('os'));
  13. }
  14. var _path;
  15. function _load_path() {
  16. return _path = _interopRequireDefault(require('path'));
  17. }
  18. var _yargs;
  19. function _load_yargs() {
  20. return _yargs = _interopRequireDefault(require('yargs'));
  21. }
  22. var _jestUtil;
  23. function _load_jestUtil() {
  24. return _jestUtil = require('jest-util');
  25. }
  26. var _jestValidate;
  27. function _load_jestValidate() {
  28. return _jestValidate = require('jest-validate');
  29. }
  30. var _jestConfig;
  31. function _load_jestConfig() {
  32. return _jestConfig = require('jest-config');
  33. }
  34. var _;
  35. function _load_() {
  36. return _ = _interopRequireDefault(require('../'));
  37. }
  38. var _args;
  39. function _load_args() {
  40. return _args = _interopRequireWildcard(require('./args'));
  41. }
  42. function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
  43. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  44. // eslint-disable-next-line import/default
  45. const VERSION = require('../../package.json').version; /**
  46. * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
  47. *
  48. * This source code is licensed under the MIT license found in the
  49. * LICENSE file in the root directory of this source tree.
  50. *
  51. *
  52. */
  53. function run(cliArgv, cliInfo) {
  54. const realFs = require('fs');
  55. const fs = require('graceful-fs');
  56. fs.gracefulify(realFs);
  57. let argv;
  58. if (cliArgv) {
  59. argv = cliArgv;
  60. } else {
  61. argv = (_yargs || _load_yargs()).default.usage((_args || _load_args()).usage).help(false).version(false).options((_args || _load_args()).options).argv;
  62. (0, (_jestValidate || _load_jestValidate()).validateCLIOptions)(argv, (_args || _load_args()).options);
  63. }
  64. if (argv.help) {
  65. (_yargs || _load_yargs()).default.showHelp();
  66. process.on('exit', () => process.exitCode = 1);
  67. return;
  68. }
  69. if (argv.version) {
  70. console.log(`v${VERSION}\n`);
  71. return;
  72. }
  73. if (!argv._.length) {
  74. console.log('Please provide a path to a script. (See --help for details)');
  75. process.on('exit', () => process.exitCode = 1);
  76. return;
  77. }
  78. const root = process.cwd();
  79. const filePath = (_path || _load_path()).default.resolve(root, argv._[0]);
  80. if (argv.debug) {
  81. const info = cliInfo ? ', ' + cliInfo.join(', ') : '';
  82. console.log(`Using Jest Runtime v${VERSION}${info}`);
  83. }
  84. const options = (0, (_jestConfig || _load_jestConfig()).readConfig)(argv, root);
  85. const globalConfig = options.globalConfig;
  86. // Always disable automocking in scripts.
  87. const config = Object.assign({}, options.projectConfig, {
  88. automock: false,
  89. unmockedModulePathPatterns: null
  90. });
  91. (_ || _load_()).default.createContext(config, {
  92. maxWorkers: (_os || _load_os()).default.cpus().length - 1,
  93. watchman: globalConfig.watchman
  94. }).then(hasteMap => {
  95. /* $FlowFixMe */
  96. const Environment = require(config.testEnvironment);
  97. const environment = new Environment(config);
  98. (0, (_jestUtil || _load_jestUtil()).setGlobal)(environment.global, 'console', new (_jestUtil || _load_jestUtil()).Console(process.stdout, process.stderr));
  99. environment.global.jestProjectConfig = config;
  100. environment.global.jestGlobalConfig = globalConfig;
  101. const runtime = new (_ || _load_()).default(config, environment, hasteMap.resolver);
  102. runtime.requireModule(filePath);
  103. }).catch(e => {
  104. console.error((_chalk || _load_chalk()).default.red(e.stack || e));
  105. process.on('exit', () => process.exitCode = 1);
  106. });
  107. }