Projekt

Obecné

Profil

Stáhnout (841 Bajtů) Statistiky
| Větev: | Revize:
1
'use strict';
2
// Older verions of Node.js might not have `util.getSystemErrorName()`.
3
// In that case, fall back to a deprecated internal.
4
const util = require('util');
5

    
6
let uv;
7

    
8
if (typeof util.getSystemErrorName === 'function') {
9
	module.exports = util.getSystemErrorName;
10
} else {
11
	try {
12
		uv = process.binding('uv');
13

    
14
		if (typeof uv.errname !== 'function') {
15
			throw new TypeError('uv.errname is not a function');
16
		}
17
	} catch (err) {
18
		console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err);
19
		uv = null;
20
	}
21

    
22
	module.exports = code => errname(uv, code);
23
}
24

    
25
// Used for testing the fallback behavior
26
module.exports.__test__ = errname;
27

    
28
function errname(uv, code) {
29
	if (uv) {
30
		return uv.errname(code);
31
	}
32

    
33
	if (!(code < 0)) {
34
		throw new Error('err >= 0');
35
	}
36

    
37
	return `Unknown system error ${code}`;
38
}
39

    
(1-1/2)