В таком виде, JS воспринимает всю конструкцию как единое выражение, оператор if же способствует автоматической расстановке точек с запятой.
В итоге получается такая последовательность действий:
async function requestKeyParsingToken() {
try {
({public_key: keyParsingTokenEndpoint} = data);
const {data} = await request({
method: "get",
url: TOKEN_SETTINGS,
})(data);
} catch (error) {
console.log(error)
}
}
А ошибка возникает из-за использования переменной до ее объявления, что запрещено с переменными объявленными через let и const, это называется "мертвое всплытие".
P.S. таких ошибок (а так же многих других) помогает избегать eslint, конкретно в данном случае помогло бы правило
semi с параметром always