feat: init
This commit is contained in:
97
node_modules/@tybys/wasm-util/lib/mjs/wasi/error.mjs
generated
vendored
Normal file
97
node_modules/@tybys/wasm-util/lib/mjs/wasi/error.mjs
generated
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
import { WasiErrno } from "./types.mjs";
|
||||
export function strerror(errno) {
|
||||
switch (errno) {
|
||||
case WasiErrno.ESUCCESS: return 'Success';
|
||||
case WasiErrno.E2BIG: return 'Argument list too long';
|
||||
case WasiErrno.EACCES: return 'Permission denied';
|
||||
case WasiErrno.EADDRINUSE: return 'Address in use';
|
||||
case WasiErrno.EADDRNOTAVAIL: return 'Address not available';
|
||||
case WasiErrno.EAFNOSUPPORT: return 'Address family not supported by protocol';
|
||||
case WasiErrno.EAGAIN: return 'Resource temporarily unavailable';
|
||||
case WasiErrno.EALREADY: return 'Operation already in progress';
|
||||
case WasiErrno.EBADF: return 'Bad file descriptor';
|
||||
case WasiErrno.EBADMSG: return 'Bad message';
|
||||
case WasiErrno.EBUSY: return 'Resource busy';
|
||||
case WasiErrno.ECANCELED: return 'Operation canceled';
|
||||
case WasiErrno.ECHILD: return 'No child process';
|
||||
case WasiErrno.ECONNABORTED: return 'Connection aborted';
|
||||
case WasiErrno.ECONNREFUSED: return 'Connection refused';
|
||||
case WasiErrno.ECONNRESET: return 'Connection reset by peer';
|
||||
case WasiErrno.EDEADLK: return 'Resource deadlock would occur';
|
||||
case WasiErrno.EDESTADDRREQ: return 'Destination address required';
|
||||
case WasiErrno.EDOM: return 'Domain error';
|
||||
case WasiErrno.EDQUOT: return 'Quota exceeded';
|
||||
case WasiErrno.EEXIST: return 'File exists';
|
||||
case WasiErrno.EFAULT: return 'Bad address';
|
||||
case WasiErrno.EFBIG: return 'File too large';
|
||||
case WasiErrno.EHOSTUNREACH: return 'Host is unreachable';
|
||||
case WasiErrno.EIDRM: return 'Identifier removed';
|
||||
case WasiErrno.EILSEQ: return 'Illegal byte sequence';
|
||||
case WasiErrno.EINPROGRESS: return 'Operation in progress';
|
||||
case WasiErrno.EINTR: return 'Interrupted system call';
|
||||
case WasiErrno.EINVAL: return 'Invalid argument';
|
||||
case WasiErrno.EIO: return 'I/O error';
|
||||
case WasiErrno.EISCONN: return 'Socket is connected';
|
||||
case WasiErrno.EISDIR: return 'Is a directory';
|
||||
case WasiErrno.ELOOP: return 'Symbolic link loop';
|
||||
case WasiErrno.EMFILE: return 'No file descriptors available';
|
||||
case WasiErrno.EMLINK: return 'Too many links';
|
||||
case WasiErrno.EMSGSIZE: return 'Message too large';
|
||||
case WasiErrno.EMULTIHOP: return 'Multihop attempted';
|
||||
case WasiErrno.ENAMETOOLONG: return 'Filename too long';
|
||||
case WasiErrno.ENETDOWN: return 'Network is down';
|
||||
case WasiErrno.ENETRESET: return 'Connection reset by network';
|
||||
case WasiErrno.ENETUNREACH: return 'Network unreachable';
|
||||
case WasiErrno.ENFILE: return 'Too many files open in system';
|
||||
case WasiErrno.ENOBUFS: return 'No buffer space available';
|
||||
case WasiErrno.ENODEV: return 'No such device';
|
||||
case WasiErrno.ENOENT: return 'No such file or directory';
|
||||
case WasiErrno.ENOEXEC: return 'Exec format error';
|
||||
case WasiErrno.ENOLCK: return 'No locks available';
|
||||
case WasiErrno.ENOLINK: return 'Link has been severed';
|
||||
case WasiErrno.ENOMEM: return 'Out of memory';
|
||||
case WasiErrno.ENOMSG: return 'No message of the desired type';
|
||||
case WasiErrno.ENOPROTOOPT: return 'Protocol not available';
|
||||
case WasiErrno.ENOSPC: return 'No space left on device';
|
||||
case WasiErrno.ENOSYS: return 'Function not implemented';
|
||||
case WasiErrno.ENOTCONN: return 'Socket not connected';
|
||||
case WasiErrno.ENOTDIR: return 'Not a directory';
|
||||
case WasiErrno.ENOTEMPTY: return 'Directory not empty';
|
||||
case WasiErrno.ENOTRECOVERABLE: return 'State not recoverable';
|
||||
case WasiErrno.ENOTSOCK: return 'Not a socket';
|
||||
case WasiErrno.ENOTSUP: return 'Not supported';
|
||||
case WasiErrno.ENOTTY: return 'Not a tty';
|
||||
case WasiErrno.ENXIO: return 'No such device or address';
|
||||
case WasiErrno.EOVERFLOW: return 'Value too large for data type';
|
||||
case WasiErrno.EOWNERDEAD: return 'Previous owner died';
|
||||
case WasiErrno.EPERM: return 'Operation not permitted';
|
||||
case WasiErrno.EPIPE: return 'Broken pipe';
|
||||
case WasiErrno.EPROTO: return 'Protocol error';
|
||||
case WasiErrno.EPROTONOSUPPORT: return 'Protocol not supported';
|
||||
case WasiErrno.EPROTOTYPE: return 'Protocol wrong type for socket';
|
||||
case WasiErrno.ERANGE: return 'Result not representable';
|
||||
case WasiErrno.EROFS: return 'Read-only file system';
|
||||
case WasiErrno.ESPIPE: return 'Invalid seek';
|
||||
case WasiErrno.ESRCH: return 'No such process';
|
||||
case WasiErrno.ESTALE: return 'Stale file handle';
|
||||
case WasiErrno.ETIMEDOUT: return 'Operation timed out';
|
||||
case WasiErrno.ETXTBSY: return 'Text file busy';
|
||||
case WasiErrno.EXDEV: return 'Cross-device link';
|
||||
case WasiErrno.ENOTCAPABLE: return 'Capabilities insufficient';
|
||||
default: return 'Unknown error';
|
||||
}
|
||||
}
|
||||
export class WasiError extends Error {
|
||||
constructor(message, errno) {
|
||||
super(message);
|
||||
this.errno = errno;
|
||||
}
|
||||
getErrorMessage() {
|
||||
return strerror(this.errno);
|
||||
}
|
||||
}
|
||||
Object.defineProperty(WasiError.prototype, 'name', {
|
||||
configurable: true,
|
||||
writable: true,
|
||||
value: 'WasiError'
|
||||
});
|
||||
Reference in New Issue
Block a user