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.
		
		
		
		
			
				
					37 lines
				
				682 B
			
		
		
			
		
	
	
					37 lines
				
				682 B
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								var util = require('util');
							 | 
						||
| 
								 | 
							
								var onExit = require('signal-exit');
							 | 
						||
| 
								 | 
							
								var currentlyUnhandled = require('currently-unhandled');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var installed = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function (log) {
							 | 
						||
| 
								 | 
							
									if (installed) {
							 | 
						||
| 
								 | 
							
										return;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									installed = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									log = log || console.error;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									var listUnhandled = currentlyUnhandled();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									onExit(function () {
							 | 
						||
| 
								 | 
							
										var unhandledRejections = listUnhandled();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (unhandledRejections.length > 0) {
							 | 
						||
| 
								 | 
							
											unhandledRejections.forEach(function (x) {
							 | 
						||
| 
								 | 
							
												var err = x.reason;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												if (!(err instanceof Error)) {
							 | 
						||
| 
								 | 
							
													err = new Error('Promise rejected with value: ' + util.inspect(err));
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												log(err.stack);
							 | 
						||
| 
								 | 
							
											});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											process.exitCode = 1;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								};
							 |