You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					34 lines
				
				747 B
			
		
		
			
		
	
	
					34 lines
				
				747 B
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								var arrayFindIndex = require('array-find-index');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function () {
							 | 
						||
| 
								 | 
							
									var unhandledRejections = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function onUnhandledRejection(reason, promise) {
							 | 
						||
| 
								 | 
							
										unhandledRejections.push({reason: reason, promise: promise});
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function onRejectionHandled(promise) {
							 | 
						||
| 
								 | 
							
										var index = arrayFindIndex(unhandledRejections, function (x) {
							 | 
						||
| 
								 | 
							
											return x.promise === promise;
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										unhandledRejections.splice(index, 1);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function currentlyUnhandled() {
							 | 
						||
| 
								 | 
							
										return unhandledRejections.map(function (entry) {
							 | 
						||
| 
								 | 
							
											return {
							 | 
						||
| 
								 | 
							
												reason: entry.reason,
							 | 
						||
| 
								 | 
							
												promise: entry.promise
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return {
							 | 
						||
| 
								 | 
							
										onUnhandledRejection: onUnhandledRejection,
							 | 
						||
| 
								 | 
							
										onRejectionHandled: onRejectionHandled,
							 | 
						||
| 
								 | 
							
										currentlyUnhandled: currentlyUnhandled
							 | 
						||
| 
								 | 
							
									};
							 | 
						||
| 
								 | 
							
								};
							 |