diff --git a/src/lib/stores/alerts.ts b/src/lib/stores/alerts.ts index 7ed5a52..a631a75 100644 --- a/src/lib/stores/alerts.ts +++ b/src/lib/stores/alerts.ts @@ -2,7 +2,7 @@ import type { Writable } from "svelte/store" import { writable } from "svelte/store" export type AlertsStore = { - create_alert: (type: Message["type"], message: string | Error | unknown) => void, + create_alert: (type: Message["type"], message: string | Error | unknown | Array) => void, store: Writable } @@ -25,6 +25,7 @@ export const alerts_init = (messages: Message[]): AlertsStore => { if("message" in error && typeof error.message === "string") message = error.message if("code" in error && typeof error.code === "string") code = error.code } + else if (error instanceof Array) message = `An unknown error occurred: ${JSON.stringify(error)}` else if (typeof error !== "string") message = `An unknown error occurred: ${JSON.stringify(error)}` else message = error diff --git a/src/lib/utils/api.ts b/src/lib/utils/api.ts index 0906e9c..cff4339 100644 --- a/src/lib/utils/api.ts +++ b/src/lib/utils/api.ts @@ -8,7 +8,7 @@ export async function api(url: string, method: string, body: Record("/api/login", "POST", { - email, - password, - }) + try { + const { token } = await api<{ token: string, error: unknown }>("/api/login", "POST", { + email, + password, + }) - if (error) { + page_data.alerts.create_alert("success", "Login Successful") + await db.authenticate(token) + set_cookie("token", null) + set_cookie("token", token) + await invalidateAll() + } catch (error) { + console.error(error) page_data.alerts.create_alert("error", error) throw new Error("Failed to login") } - - page_data.alerts.create_alert("success", "Login Successful") - await db.authenticate(token) - set_cookie("token", null) - set_cookie("token", token) - await invalidateAll() } \ No newline at end of file