make initialization a singleton (#517)

This commit is contained in:
ABevier 2023-04-27 22:48:56 -04:00 committed by GitHub
parent a5c80d4d5c
commit d300efd805
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -16,7 +16,25 @@ const destinationDirectory = getGuiPath();
// Get the binary path from the current app directory
const binaryUrl = "https://tea.xyz/$(uname)/$(uname -m)";
let initializePromise: Promise<string> | null = null;
export async function initializeTeaCli(): Promise<string> {
if (initializePromise) {
return initializePromise;
}
log.info("Initializing tea cli");
initializePromise = initializeTeaCliInternal();
initializePromise.catch((error) => {
log.info("Error initializing tea cli, resetting promise:", error);
initializePromise = null;
});
return initializePromise;
}
async function initializeTeaCliInternal(): Promise<string> {
try {
let binCheck = "";
let needsUpdate = false;