121 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| Object.defineProperty(exports, '__esModule', {
 | |
|   value: true
 | |
| });
 | |
| exports.default = void 0;
 | |
| 
 | |
| 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);
 | |
|     });
 | |
|   };
 | |
| }
 | |
| 
 | |
| 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;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
 | |
|  *
 | |
|  * This source code is licensed under the MIT license found in the
 | |
|  * LICENSE file in the root directory of this source tree.
 | |
|  */
 | |
| class JestHooks {
 | |
|   constructor() {
 | |
|     _defineProperty(this, '_listeners', void 0);
 | |
| 
 | |
|     this._listeners = {
 | |
|       onFileChange: [],
 | |
|       onTestRunComplete: [],
 | |
|       shouldRunTestSuite: []
 | |
|     };
 | |
|   }
 | |
| 
 | |
|   isUsed(hook) {
 | |
|     return this._listeners[hook] && this._listeners[hook].length;
 | |
|   }
 | |
| 
 | |
|   getSubscriber() {
 | |
|     return {
 | |
|       onFileChange: fn => {
 | |
|         this._listeners.onFileChange.push(fn);
 | |
|       },
 | |
|       onTestRunComplete: fn => {
 | |
|         this._listeners.onTestRunComplete.push(fn);
 | |
|       },
 | |
|       shouldRunTestSuite: fn => {
 | |
|         this._listeners.shouldRunTestSuite.push(fn);
 | |
|       }
 | |
|     };
 | |
|   }
 | |
| 
 | |
|   getEmitter() {
 | |
|     var _this = this;
 | |
| 
 | |
|     return {
 | |
|       onFileChange: fs =>
 | |
|         this._listeners.onFileChange.forEach(listener => listener(fs)),
 | |
|       onTestRunComplete: results =>
 | |
|         this._listeners.onTestRunComplete.forEach(listener =>
 | |
|           listener(results)
 | |
|         ),
 | |
|       shouldRunTestSuite: (function() {
 | |
|         var _shouldRunTestSuite = _asyncToGenerator(function*(testSuiteInfo) {
 | |
|           const result = yield Promise.all(
 | |
|             _this._listeners.shouldRunTestSuite.map(listener =>
 | |
|               listener(testSuiteInfo)
 | |
|             )
 | |
|           );
 | |
|           return result.every(Boolean);
 | |
|         });
 | |
| 
 | |
|         function shouldRunTestSuite(_x) {
 | |
|           return _shouldRunTestSuite.apply(this, arguments);
 | |
|         }
 | |
| 
 | |
|         return shouldRunTestSuite;
 | |
|       })()
 | |
|     };
 | |
|   }
 | |
| }
 | |
| 
 | |
| var _default = JestHooks;
 | |
| exports.default = _default;
 |