40 lines
		
	
	
		
			841 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			841 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								// Older verions of Node.js might not have `util.getSystemErrorName()`.
							 | 
						||
| 
								 | 
							
								// In that case, fall back to a deprecated internal.
							 | 
						||
| 
								 | 
							
								const util = require('util');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let uv;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (typeof util.getSystemErrorName === 'function') {
							 | 
						||
| 
								 | 
							
									module.exports = util.getSystemErrorName;
							 | 
						||
| 
								 | 
							
								} else {
							 | 
						||
| 
								 | 
							
									try {
							 | 
						||
| 
								 | 
							
										uv = process.binding('uv');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (typeof uv.errname !== 'function') {
							 | 
						||
| 
								 | 
							
											throw new TypeError('uv.errname is not a function');
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									} catch (err) {
							 | 
						||
| 
								 | 
							
										console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err);
							 | 
						||
| 
								 | 
							
										uv = null;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									module.exports = code => errname(uv, code);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Used for testing the fallback behavior
							 | 
						||
| 
								 | 
							
								module.exports.__test__ = errname;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function errname(uv, code) {
							 | 
						||
| 
								 | 
							
									if (uv) {
							 | 
						||
| 
								 | 
							
										return uv.errname(code);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if (!(code < 0)) {
							 | 
						||
| 
								 | 
							
										throw new Error('err >= 0');
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return `Unknown system error ${code}`;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |