257 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			257 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| Object.defineProperty(exports, '__esModule', {
 | |
|   value: true
 | |
| });
 | |
| exports.run = run;
 | |
| 
 | |
| function _os() {
 | |
|   const data = _interopRequireDefault(require('os'));
 | |
| 
 | |
|   _os = function _os() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _path() {
 | |
|   const data = _interopRequireDefault(require('path'));
 | |
| 
 | |
|   _path = function _path() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _chalk() {
 | |
|   const data = _interopRequireDefault(require('chalk'));
 | |
| 
 | |
|   _chalk = function _chalk() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _realpathNative() {
 | |
|   const data = require('realpath-native');
 | |
| 
 | |
|   _realpathNative = function _realpathNative() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _yargs() {
 | |
|   const data = _interopRequireDefault(require('yargs'));
 | |
| 
 | |
|   _yargs = function _yargs() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _console() {
 | |
|   const data = require('@jest/console');
 | |
| 
 | |
|   _console = function _console() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _jestUtil() {
 | |
|   const data = require('jest-util');
 | |
| 
 | |
|   _jestUtil = function _jestUtil() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _jestValidate() {
 | |
|   const data = require('jest-validate');
 | |
| 
 | |
|   _jestValidate = function _jestValidate() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _jestConfig() {
 | |
|   const data = require('jest-config');
 | |
| 
 | |
|   _jestConfig = function _jestConfig() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| var _version = require('../version');
 | |
| 
 | |
| var args = _interopRequireWildcard(require('./args'));
 | |
| 
 | |
| 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)) {
 | |
|           var desc =
 | |
|             Object.defineProperty && Object.getOwnPropertyDescriptor
 | |
|               ? Object.getOwnPropertyDescriptor(obj, key)
 | |
|               : {};
 | |
|           if (desc.get || desc.set) {
 | |
|             Object.defineProperty(newObj, key, desc);
 | |
|           } else {
 | |
|             newObj[key] = obj[key];
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|     newObj.default = obj;
 | |
|     return newObj;
 | |
|   }
 | |
| }
 | |
| 
 | |
| function _interopRequireDefault(obj) {
 | |
|   return obj && obj.__esModule ? obj : {default: obj};
 | |
| }
 | |
| 
 | |
| function _objectSpread(target) {
 | |
|   for (var i = 1; i < arguments.length; i++) {
 | |
|     var source = arguments[i] != null ? arguments[i] : {};
 | |
|     var ownKeys = Object.keys(source);
 | |
|     if (typeof Object.getOwnPropertySymbols === 'function') {
 | |
|       ownKeys = ownKeys.concat(
 | |
|         Object.getOwnPropertySymbols(source).filter(function(sym) {
 | |
|           return Object.getOwnPropertyDescriptor(source, sym).enumerable;
 | |
|         })
 | |
|       );
 | |
|     }
 | |
|     ownKeys.forEach(function(key) {
 | |
|       _defineProperty(target, key, source[key]);
 | |
|     });
 | |
|   }
 | |
|   return target;
 | |
| }
 | |
| 
 | |
| function _defineProperty(obj, key, value) {
 | |
|   if (key in obj) {
 | |
|     Object.defineProperty(obj, key, {
 | |
|       value: value,
 | |
|       enumerable: true,
 | |
|       configurable: true,
 | |
|       writable: true
 | |
|     });
 | |
|   } else {
 | |
|     obj[key] = value;
 | |
|   }
 | |
|   return obj;
 | |
| }
 | |
| 
 | |
| function run(cliArgv, cliInfo) {
 | |
|   const realFs = require('fs');
 | |
| 
 | |
|   const fs = require('graceful-fs');
 | |
| 
 | |
|   fs.gracefulify(realFs);
 | |
|   let argv;
 | |
| 
 | |
|   if (cliArgv) {
 | |
|     argv = cliArgv;
 | |
|   } else {
 | |
|     argv = _yargs()
 | |
|       .default.usage(args.usage)
 | |
|       .help(false)
 | |
|       .version(false)
 | |
|       .options(args.options).argv; // @ts-ignore: fix this at some point
 | |
| 
 | |
|     (0, _jestValidate().validateCLIOptions)(
 | |
|       argv,
 | |
|       _objectSpread({}, 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, _realpathNative().sync)(process.cwd());
 | |
| 
 | |
|   const filePath = _path().default.resolve(root, argv._[0]);
 | |
| 
 | |
|   if (argv.debug) {
 | |
|     const info = cliInfo ? ', ' + cliInfo.join(', ') : '';
 | |
|     console.log(`Using Jest Runtime v${_version.VERSION}${info}`);
 | |
|   } // TODO: Figure this out
 | |
|   // @ts-ignore: this might not have the correct arguments
 | |
| 
 | |
|   const options = (0, _jestConfig().readConfig)(argv, root);
 | |
|   const globalConfig = options.globalConfig; // Always disable automocking in scripts.
 | |
| 
 | |
|   const config = _objectSpread({}, options.projectConfig, {
 | |
|     automock: false,
 | |
|     unmockedModulePathPatterns: null
 | |
|   }); // Break circular dependency
 | |
| 
 | |
|   const Runtime = require('..');
 | |
| 
 | |
|   Runtime.createContext(config, {
 | |
|     maxWorkers: Math.max(_os().default.cpus().length - 1, 1),
 | |
|     watchman: globalConfig.watchman
 | |
|   })
 | |
|     .then(hasteMap => {
 | |
|       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);
 | |
|       runtime.requireModule(filePath);
 | |
|     })
 | |
|     .catch(e => {
 | |
|       console.error(_chalk().default.red(e.stack || e));
 | |
|       process.on('exit', () => (process.exitCode = 1));
 | |
|     });
 | |
| }
 |