Packages

Mineflayer bindings for gleam

Current section

Files

Jump to
mineflayer src utils_js.mjs
Raw

src/utils_js.mjs

import { Some } from './gleam_option.mjs'
import * as bot from './mineflayer/bot.mjs'
export function option_or_undefined(o) {
if (o instanceof Some) {
return o[0]
}
return undefined
}
export function mineflayer_getaddrinfo_error_to_gleam(code) {
let getaddrinfo_err;
if (code === 'ENODATA') {
getaddrinfo_err = new bot.NoData()
} else if (code === 'EFORMERR') {
getaddrinfo_err = new bot.Formerr()
} else if (code === 'ESERVFAIL') {
getaddrinfo_err = new bot.ServerFail()
} else if (code === 'ENOTFOUND') {
getaddrinfo_err = new bot.NotFound()
} else if (code === 'ENOTIMP') {
getaddrinfo_err = new bot.NotImplemented()
} else if (code === 'EREFUSED') {
getaddrinfo_err = new bot.Refused()
} else if (code === 'EBADQUERY') {
getaddrinfo_err = new bot.BadQuery()
} else if (code === 'EBADNAME') {
getaddrinfo_err = new bot.BadName()
} else if (code === 'EBADFAMILY') {
getaddrinfo_err = new bot.BadFamily()
} else if (code === 'EBADRESP') {
getaddrinfo_err = new bot.BadResponse()
} else if (code === 'ECONNREFUSED') {
getaddrinfo_err = new bot.ConnectionRefused()
} else if (code === 'ETIMEOUT') {
getaddrinfo_err = new bot.Timeout()
} else if (code === 'EEOF') {
getaddrinfo_err = new bot.EOF()
} else if (code === 'EFILE') {
getaddrinfo_err = new bot.File()
} else if (code === 'ENOMEM') {
getaddrinfo_err = new bot.NoMem()
} else if (code === 'EDESTRUCTION') {
getaddrinfo_err = new bot.Destruction()
} else if (code === 'EBADSTR') {
getaddrinfo_err = new bot.BadString()
} else if (code === 'EBADFLAGS') {
getaddrinfo_err = new bot.BadFlags()
} else if (code === 'ENONAME') {
getaddrinfo_err = new bot.NoName()
} else if (code === 'EBADHINTS') {
getaddrinfo_err = new bot.BadHints()
} else if (code === 'ENOTINITIALIZED') {
getaddrinfo_err = new bot.NotInitialized()
} else if (code === 'ELOADIPHLPAPI') {
getaddrinfo_err = new bot.LoadIPHLPAPI()
} else if (code === 'EADDRGETNETWORKPARAMS') {
getaddrinfo_err = new bot.AddrGetNetworkParams()
} else if (code === 'ECANCELLED') {
getaddrinfo_err = new bot.Cancelled()
} else if (code === 'EAI_AGAIN') {
getaddrinfo_err = new bot.TryAgainLater()
} else {
getaddrinfo_err = new bot.UnknownDNSError()
}
return new bot.DNSError(getaddrinfo_err)
}
export function mineflayer_connect_error_to_gleam(code) {
let connect_err;
if (code === 'EACCES') {
connect_err = new bot.EACCES()
} else if (code === 'EPERM') {
connect_err = new bot.EPERM()
} else if (code === 'EADDRINUSE') {
connect_err = new bot.EADDRINUSE()
} else if (code === 'EADDRNOTAVAIL') {
connect_err = new bot.EADDRNOTAVAIL()
} else if (code === 'EAFNOSUPPORT') {
connect_err = new bot.EAFNOSUPPORT()
} else if (code === 'EAGAIN') {
connect_err = new bot.EAGAIN()
} else if (code === 'EALREADY') {
connect_err = new bot.EALREADY()
} else if (code === 'EBADF') {
connect_err = new bot.EBADF()
} else if (code === 'ECONNREFUSED') {
connect_err = new bot.ECONNREFUSED()
} else if (code === 'EFAULT') {
connect_err = new bot.EFAULT()
} else if (code === 'EINPROGRESS') {
connect_err = new bot.EINPROGRESS()
} else if (code === 'EINTR') {
connect_err = new bot.EINTR()
} else if (code === 'EISCONN') {
connect_err = new bot.EISCONN()
} else if (code === 'ENETUNREACH') {
connect_err = new bot.ENETUNREACH()
} else if (code === 'ENODATA') {
connect_err = new bot.NoData()
} else if (code === 'ENOTSOCK') {
connect_err = new bot.ENOTSOCK()
} else if (code === 'EPROTOTYPE') {
connect_err = new bot.EPROTOTYPE()
} else if (code === 'ETIMEDOUT') {
connect_err = new bot.ETIMEDOUT()
} else {
getaddrinfo_err = new bot.UnknownConnectErr()
}
return new bot.ConnectError(connect_err)
}
export function mineflayer_error_to_gleam(err) {
if (err.syscall === 'getaddrinfo') {
return mineflayer_getaddrinfo_error_to_gleam(err.code)
} else if (err.syscall === 'connect') {
return mineflayer_connect_error_to_gleam(err.code)
} else {
return undefined
}
}
export function on_event(obj, event, callback) {
obj.on(event, callback)
return obj
}
export function once_event(obj, event, callback) {
obj.once(event, callback)
return obj
}
export function off_event(obj, event, callback) {
obj.off(event, callback)
return obj
}