Projekt

Obecné

Profil

Stáhnout (841 Bajtů) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
'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
}