fix: handle race condition on boot

This commit is contained in:
Samuel Attard 2023-07-20 02:01:23 -07:00
Родитель b38ad6286e
Коммит 174e7ad236
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 265C198401D8EFA7
1 изменённых файлов: 14 добавлений и 5 удалений

Просмотреть файл

@ -27,13 +27,22 @@ async function createTableSchema() {
)`);
}
let ready = false;
async function ensureDBInitialized() {
if (ready) return;
const once = (fn: () => Promise<void>) => {
let singleton: Promise<void> | null = null;
return async () => {
if (!singleton) {
singleton = fn();
}
return await singleton;
};
};
const ensureDBInitialized = once(async function () {
await client.connect();
await createTableSchema();
ready = true;
}
});
export async function getInstallation(teamId: string | null, enterpriseId: string | null) {
await ensureDBInitialized();