188 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			188 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| Object.defineProperty(exports, '__esModule', {
 | |
|   value: true
 | |
| });
 | |
| exports.default = void 0;
 | |
| 
 | |
| function _path() {
 | |
|   const data = require('path');
 | |
| 
 | |
|   _path = function _path() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _pEachSeries() {
 | |
|   const data = _interopRequireDefault(require('p-each-series'));
 | |
| 
 | |
|   _pEachSeries = function _pEachSeries() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _pirates() {
 | |
|   const data = require('pirates');
 | |
| 
 | |
|   _pirates = function _pirates() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _transform() {
 | |
|   const data = require('@jest/transform');
 | |
| 
 | |
|   _transform = function _transform() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _jestUtil() {
 | |
|   const data = require('jest-util');
 | |
| 
 | |
|   _jestUtil = function _jestUtil() {
 | |
|     return data;
 | |
|   };
 | |
| 
 | |
|   return data;
 | |
| }
 | |
| 
 | |
| function _interopRequireDefault(obj) {
 | |
|   return obj && obj.__esModule ? obj : {default: obj};
 | |
| }
 | |
| 
 | |
| function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
 | |
|   try {
 | |
|     var info = gen[key](arg);
 | |
|     var value = info.value;
 | |
|   } catch (error) {
 | |
|     reject(error);
 | |
|     return;
 | |
|   }
 | |
|   if (info.done) {
 | |
|     resolve(value);
 | |
|   } else {
 | |
|     Promise.resolve(value).then(_next, _throw);
 | |
|   }
 | |
| }
 | |
| 
 | |
| function _asyncToGenerator(fn) {
 | |
|   return function() {
 | |
|     var self = this,
 | |
|       args = arguments;
 | |
|     return new Promise(function(resolve, reject) {
 | |
|       var gen = fn.apply(self, args);
 | |
|       function _next(value) {
 | |
|         asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'next', value);
 | |
|       }
 | |
|       function _throw(err) {
 | |
|         asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err);
 | |
|       }
 | |
|       _next(undefined);
 | |
|     });
 | |
|   };
 | |
| }
 | |
| 
 | |
| var _default =
 | |
|   /*#__PURE__*/
 | |
|   (function() {
 | |
|     var _ref = _asyncToGenerator(function*({
 | |
|       allTests,
 | |
|       globalConfig,
 | |
|       moduleName
 | |
|     }) {
 | |
|       const globalModulePaths = new Set(
 | |
|         allTests.map(test => test.context.config[moduleName])
 | |
|       );
 | |
| 
 | |
|       if (globalConfig[moduleName]) {
 | |
|         globalModulePaths.add(globalConfig[moduleName]);
 | |
|       }
 | |
| 
 | |
|       if (globalModulePaths.size > 0) {
 | |
|         yield (0, _pEachSeries().default)(
 | |
|           Array.from(globalModulePaths),
 | |
|           /*#__PURE__*/
 | |
|           (function() {
 | |
|             var _ref2 = _asyncToGenerator(function*(modulePath) {
 | |
|               if (!modulePath) {
 | |
|                 return;
 | |
|               }
 | |
| 
 | |
|               const correctConfig = allTests.find(
 | |
|                 t => t.context.config[moduleName] === modulePath
 | |
|               );
 | |
|               const projectConfig = correctConfig
 | |
|                 ? correctConfig.context.config // Fallback to first config
 | |
|                 : allTests[0].context.config;
 | |
|               const transformer = new (_transform()).ScriptTransformer(
 | |
|                 projectConfig
 | |
|               ); // Load the transformer to avoid a cycle where we need to load a
 | |
|               // transformer in order to transform it in the require hooks
 | |
| 
 | |
|               transformer.preloadTransformer(modulePath);
 | |
|               let transforming = false;
 | |
|               const revertHook = (0, _pirates().addHook)(
 | |
|                 (code, filename) => {
 | |
|                   try {
 | |
|                     transforming = true;
 | |
|                     return (
 | |
|                       transformer.transformSource(filename, code, false).code ||
 | |
|                       code
 | |
|                     );
 | |
|                   } finally {
 | |
|                     transforming = false;
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   exts: [(0, _path().extname)(modulePath)],
 | |
|                   ignoreNodeModules: false,
 | |
|                   matcher: (...args) => {
 | |
|                     if (transforming) {
 | |
|                       // Don't transform any dependency required by the transformer itself
 | |
|                       return false;
 | |
|                     }
 | |
| 
 | |
|                     return transformer.shouldTransform(...args);
 | |
|                   }
 | |
|                 }
 | |
|               );
 | |
|               const globalModule = (0, _jestUtil().interopRequireDefault)(
 | |
|                 require(modulePath)
 | |
|               ).default;
 | |
| 
 | |
|               if (typeof globalModule !== 'function') {
 | |
|                 throw new TypeError(
 | |
|                   `${moduleName} file must export a function at ${modulePath}`
 | |
|                 );
 | |
|               }
 | |
| 
 | |
|               yield globalModule(globalConfig);
 | |
|               revertHook();
 | |
|             });
 | |
| 
 | |
|             return function(_x2) {
 | |
|               return _ref2.apply(this, arguments);
 | |
|             };
 | |
|           })()
 | |
|         );
 | |
|       }
 | |
| 
 | |
|       return Promise.resolve();
 | |
|     });
 | |
| 
 | |
|     return function(_x) {
 | |
|       return _ref.apply(this, arguments);
 | |
|     };
 | |
|   })();
 | |
| 
 | |
| exports.default = _default;
 |