[Nitpick] Instead of this:
;(async function () {
try {
// All your code
} catch (e) {
console.log(e)
}
})()
Just do this: ;(async function () {
// All your code
})().catch(console.error)
Overuse of try/catch is probably the #1 mistake I see when people use async/await.