'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;