export interface Todo { status: string; title: string; closed: boolean; color: string; } export async function fetchTodos(): Promise { console.log("Try to fetch TODOs from server."); if (process.env.NODE_ENV !== "production") { console.log("YaY! We are developers. 🍻 Use mock TODOs. (After 2s)"); // await new Promise((resolve) => setTimeout(resolve, 2000)); return (await import("./mock-todos")).default; } else { const res = await fetch("/api/todos"); const body: Todo[] = await res.json(); if (res.status !== 200) { console.error( `Failed to get TODOs. Status: ${res.status}. Body: ${body}`, ); throw new Error( "Failed to fetch TODOs. (Maybe due to rate limit. Please try later.)", ); } return body; } }