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.
		
		
		
		
			
				
					39 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					39 lines
				
				1.2 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# capture-exit
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[](https://ci.appveyor.com/project/embercli/capture-exit/branch/master)
							 | 
						||
| 
								 | 
							
								[](https://travis-ci.org/ember-cli/capture-exit)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Allow cooprative async exit handlers, we unfortunately must hijack
							 | 
						||
| 
								 | 
							
								process.exit.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								It allows a handler to ensure exit, without that exit handler impeding other
							 | 
						||
| 
								 | 
							
								similar handlers
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for example, see: [sindresorhus/ora#27](https://github.com/sindresorhus/ora/issues/27)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Differences between `process.on('exit')` and `captureExit.onExit(...)` => https://github.com/ember-cli/capture-exit/issues/12
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Installation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								yarn add capture-exit
							 | 
						||
| 
								 | 
							
								// or
							 | 
						||
| 
								 | 
							
								npm install --save capture-exit
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								// as early in startup as possible
							 | 
						||
| 
								 | 
							
								require('capture-exit').captureExit();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// when you want to schedule some work on exit:
							 | 
						||
| 
								 | 
							
								function onExit() {
							 | 
						||
| 
								 | 
							
								  return something.processWillExit(); // you can return promises, which will pause exit until fulfilled
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require('capture-exit').onExit(onExit); // add an exit handler
							 | 
						||
| 
								 | 
							
								require('capture-exit').offExit(onExit); // allows one to remove an exit handle if it is not longer required
							 | 
						||
| 
								 | 
							
								```
							 |