filer/src/errors.js

93 lines
3.1 KiB
JavaScript

var errors = {};
[
/**
* node.js errors
*/
'-1:UNKNOWN:unknown error',
'0:OK:success',
'1:EOF:end of file',
'2:EADDRINFO:getaddrinfo error',
'3:EACCES:permission denied',
'4:EAGAIN:resource temporarily unavailable',
'5:EADDRINUSE:address already in use',
'6:EADDRNOTAVAIL:address not available',
'7:EAFNOSUPPORT:address family not supported',
'8:EALREADY:connection already in progress',
'9:EBADF:bad file descriptor',
'10:EBUSY:resource busy or locked',
'11:ECONNABORTED:software caused connection abort',
'12:ECONNREFUSED:connection refused',
'13:ECONNRESET:connection reset by peer',
'14:EDESTADDRREQ:destination address required',
'15:EFAULT:bad address in system call argument',
'16:EHOSTUNREACH:host is unreachable',
'17:EINTR:interrupted system call',
'18:EINVAL:invalid argument',
'19:EISCONN:socket is already connected',
'20:EMFILE:too many open files',
'21:EMSGSIZE:message too long',
'22:ENETDOWN:network is down',
'23:ENETUNREACH:network is unreachable',
'24:ENFILE:file table overflow',
'25:ENOBUFS:no buffer space available',
'26:ENOMEM:not enough memory',
'27:ENOTDIR:not a directory',
'28:EISDIR:illegal operation on a directory',
'29:ENONET:machine is not on the network',
// errno 30 skipped, as per https://github.com/rvagg/node-errno/blob/master/errno.js
'31:ENOTCONN:socket is not connected',
'32:ENOTSOCK:socket operation on non-socket',
'33:ENOTSUP:operation not supported on socket',
'34:ENOENT:no such file or directory',
'35:ENOSYS:function not implemented',
'36:EPIPE:broken pipe',
'37:EPROTO:protocol error',
'38:EPROTONOSUPPORT:protocol not supported',
'39:EPROTOTYPE:protocol wrong type for socket',
'40:ETIMEDOUT:connection timed out',
'41:ECHARSET:invalid Unicode character',
'42:EAIFAMNOSUPPORT:address family for hostname not supported',
// errno 43 skipped, as per https://github.com/rvagg/node-errno/blob/master/errno.js
'44:EAISERVICE:servname not supported for ai_socktype',
'45:EAISOCKTYPE:ai_socktype not supported',
'46:ESHUTDOWN:cannot send after transport endpoint shutdown',
'47:EEXIST:file already exists',
'48:ESRCH:no such process',
'49:ENAMETOOLONG:name too long',
'50:EPERM:operation not permitted',
'51:ELOOP:too many symbolic links encountered',
'52:EXDEV:cross-device link not permitted',
'53:ENOTEMPTY:directory not empty',
'54:ENOSPC:no space left on device',
'55:EIO:i/o error',
'56:EROFS:read-only file system',
'57:ENODEV:no such device',
'58:ESPIPE:invalid seek',
'59:ECANCELED:operation canceled',
/**
* Filer specific errors
*/
'1000:ENOTMOUNTED:not mounted',
'1001:EFILESYSTEMERROR:missing super node, use \'FORMAT\' flag to format filesystem.',
'1002:ENOATTR:attribute does not exist'
].forEach(function(e) {
e = e.split(':');
var errno = e[0],
err = e[1],
message = e[2];
function ctor(m) {
this.message = m || message;
}
var proto = ctor.prototype = new Error();
proto.errno = errno;
proto.code = err;
proto.constructor = ctor;
// We expose the error as both Errors.EINVAL and Errors[18]
errors[err] = errors[errno] = ctor;
});
module.exports = errors;