|
|
@ -90,7 +90,10 @@ db.on("populate", async () => { |
|
|
|
try { |
|
|
|
await db.settings.add(DEFAULT_SETTINGS); |
|
|
|
} catch (error) { |
|
|
|
console.error("Error populating the database with default settings:", error); |
|
|
|
console.error( |
|
|
|
"Error populating the database with default settings:", |
|
|
|
error, |
|
|
|
); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
@ -105,7 +108,7 @@ async function safeOpenDatabase(retries = 1, delay = 500): Promise<void> { |
|
|
|
|
|
|
|
// Create a promise that rejects after 5 seconds
|
|
|
|
const timeoutPromise = new Promise((_, reject) => { |
|
|
|
setTimeout(() => reject(new Error('Database open timed out')), 500); |
|
|
|
setTimeout(() => reject(new Error("Database open timed out")), 500); |
|
|
|
}); |
|
|
|
|
|
|
|
// Race between the open operation and the timeout
|
|
|
@ -123,7 +126,7 @@ async function safeOpenDatabase(retries = 1, delay = 500): Promise<void> { |
|
|
|
console.error(`Attempt ${i + 1}: Database open failed:`, error); |
|
|
|
if (i < retries - 1) { |
|
|
|
console.log(`Attempt ${i + 1}: Waiting ${delay}ms before retry...`); |
|
|
|
await new Promise(resolve => setTimeout(resolve, delay)); |
|
|
|
await new Promise((resolve) => setTimeout(resolve, delay)); |
|
|
|
} else { |
|
|
|
throw error; |
|
|
|
} |
|
|
@ -145,10 +148,16 @@ export async function updateDefaultSettings( |
|
|
|
await safeOpenDatabase(); |
|
|
|
} catch (openError: unknown) { |
|
|
|
console.error("Failed to open database:", openError); |
|
|
|
const errorMessage = openError instanceof Error ? openError.message : String(openError); |
|
|
|
throw new Error(`Database connection failed: ${errorMessage}. Please try again or restart the app.`); |
|
|
|
const errorMessage = |
|
|
|
openError instanceof Error ? openError.message : String(openError); |
|
|
|
throw new Error( |
|
|
|
`Database connection failed: ${errorMessage}. Please try again or restart the app.`, |
|
|
|
); |
|
|
|
} |
|
|
|
const result = await db.settings.update(MASTER_SETTINGS_KEY, settingsChanges); |
|
|
|
const result = await db.settings.update( |
|
|
|
MASTER_SETTINGS_KEY, |
|
|
|
settingsChanges, |
|
|
|
); |
|
|
|
return result; |
|
|
|
} catch (error) { |
|
|
|
console.error("Error updating default settings:", error); |
|
|
|