index.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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) {
  43. if (obj && obj.__esModule) {
  44. return obj;
  45. } else {
  46. var newObj = {};
  47. if (obj != null) {
  48. for (var key in obj) {
  49. if (Object.prototype.hasOwnProperty.call(obj, key))
  50. newObj[key] = obj[key];
  51. }
  52. }
  53. newObj.default = obj;
  54. return newObj;
  55. }
  56. }
  57. function _interopRequireDefault(obj) {
  58. return obj && obj.__esModule ? obj : {default: obj};
  59. }
  60. // eslint-disable-next-line import/default
  61. const VERSION = require('../../package.json').version;
  62. /**
  63. * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
  64. *
  65. * This source code is licensed under the MIT license found in the
  66. * LICENSE file in the root directory of this source tree.
  67. *
  68. *
  69. */
  70. function run(cliArgv, cliInfo) {
  71. const realFs = require('fs');
  72. const fs = require('graceful-fs');
  73. fs.gracefulify(realFs);
  74. let argv;
  75. if (cliArgv) {
  76. argv = cliArgv;
  77. } else {
  78. argv = (_yargs || _load_yargs()).default
  79. .usage((_args || _load_args()).usage)
  80. .help(false)
  81. .version(false)
  82. .options((_args || _load_args()).options).argv;
  83. (0, (_jestValidate || _load_jestValidate()).validateCLIOptions)(
  84. argv,
  85. Object.assign({}, (_args || _load_args()).options, {
  86. deprecationEntries: (_jestConfig || _load_jestConfig())
  87. .deprecationEntries
  88. })
  89. );
  90. }
  91. if (argv.help) {
  92. (_yargs || _load_yargs()).default.showHelp();
  93. process.on('exit', () => (process.exitCode = 1));
  94. return;
  95. }
  96. if (argv.version) {
  97. console.log(`v${VERSION}\n`);
  98. return;
  99. }
  100. if (!argv._.length) {
  101. console.log('Please provide a path to a script. (See --help for details)');
  102. process.on('exit', () => (process.exitCode = 1));
  103. return;
  104. }
  105. const root = process.cwd();
  106. const filePath = (_path || _load_path()).default.resolve(root, argv._[0]);
  107. if (argv.debug) {
  108. const info = cliInfo ? ', ' + cliInfo.join(', ') : '';
  109. console.log(`Using Jest Runtime v${VERSION}${info}`);
  110. }
  111. const options = (0, (_jestConfig || _load_jestConfig()).readConfig)(
  112. argv,
  113. root
  114. );
  115. const globalConfig = options.globalConfig;
  116. // Always disable automocking in scripts.
  117. const config = Object.assign({}, options.projectConfig, {
  118. automock: false,
  119. unmockedModulePathPatterns: null
  120. });
  121. (_ || _load_()).default
  122. .createContext(config, {
  123. maxWorkers: (_os || _load_os()).default.cpus().length - 1,
  124. watchman: globalConfig.watchman
  125. })
  126. .then(hasteMap => {
  127. /* $FlowFixMe */
  128. const Environment = require(config.testEnvironment);
  129. const environment = new Environment(config);
  130. (0, (_jestUtil || _load_jestUtil()).setGlobal)(
  131. environment.global,
  132. 'console',
  133. new (_jestUtil || _load_jestUtil()).Console(
  134. process.stdout,
  135. process.stderr
  136. )
  137. );
  138. environment.global.jestProjectConfig = config;
  139. environment.global.jestGlobalConfig = globalConfig;
  140. const runtime = new (_ || _load_()).default(
  141. config,
  142. environment,
  143. hasteMap.resolver
  144. );
  145. runtime.requireModule(filePath);
  146. })
  147. .catch(e => {
  148. console.error((_chalk || _load_chalk()).default.red(e.stack || e));
  149. process.on('exit', () => (process.exitCode = 1));
  150. });
  151. }