📄Supabase로 url-shotter 만들기
별다줄
supabase
utils
/* .server/libs/supabase.ts */
import { createClient } from "@supabase/supabase-js"
import assert from "assert"
import type { Database } from "~/.server/types/supabase"
assert(
process.env.VITE_PUBLIC_SUPABASE_URL,
"Missing env var: VITE_PUBLIC_SUPABASE_URL",
)
assert(process.env.SERVICE_KEY, "Missing env var: SERVICE_KEY")
export const supabase = createClient<Database>(
process.env.VITE_PUBLIC_SUPABASE_URL,
process.env.SERVICE_KEY,
)
/* routes/short-link.ts */
import { supabase } from "~/.server/libs/supabase"
import { redirect } from "react-router"
import type { Route } from "./+types/short-link"
export async function loader({ params }: Route.LoaderArgs) {
const { data } = await supabase
.from("short_links")
.select("destination")
.eq("slug", params.slug)
.single()
if (!data) throw redirect("/404")
return redirect(data.destination)
}