Итак, у меня возникла проблема, когда при экспорте асинхронной функции и импорте других членов этого файла, которые не являются асинхронными, они не определены.
Вот как это настроено:
functions.ts
export function getEnvironmentVariable(variable: string, defaultVal: string): string {
return process.env[variable] ?? defaultVal;
}
export async function handleDiscordToGameChat(member: GuildMember, chatChannel: string, content: string): Promise<{
ok: boolean;
response: string
}> {
const currentAuth = getAuthLvlFromMember(member);
const apiKey = getApiKeyForAuth(currentAuth);
if (!apiKey || currentAuth.rank < hsgRoleMap.GS.rank) {
return {
ok: false,
response: 'Insufficient permissions.'
};
}
const req = await fetch(`http://${API_ENDPOINT}/${isLocalServer() ? 'hsg-server' : 'hsg-rp'}/sendMessageToGame`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'token': apiKey
},
body: JSON.stringify({
content,
chatChannel,
adminDets: {
name: member.user.tag,
authLvl: currentAuth.acronym
}
})
});
const data = await req.json();
if (!data.ok) {
return {
ok: false,
response: data.response
};
}
return {
ok: true,
response: 'Successfully sent message.'
};
}
При попытке доступа к экспортированному члену getEnvironmentVariable
в другом файле (config.ts
) через:
import { getEnvironmentVariable } from './utils/functions';
console.log(typeof getEnvironmentVariable); // undefined
Хотя , после удаления экспорта асинхронного члена он возвращает функцию. Следует ли мне хранить весь асинхронный экспорт в отдельном файле или около того?
РЕДАКТИРОВАТЬ: Забыл добавить: Моя IDE идентифицирует экспортированный член как функцию и не вызывает никаких ошибок компиляции, это только во время выполнения, которое проблема c.