Files
voyage/src/routes/shared/[key]/+page.server.ts

42 lines
1000 B
TypeScript

import { db } from "$lib/db/db.server";
import { sharedAdventures } from "$lib/db/schema";
import { eq } from "drizzle-orm";
import type { Adventure } from "$lib/utils/types";
export async function load({ params }) {
let key = params.key;
// Fetch data from the database
let result = await db
.select()
.from(sharedAdventures)
.where(eq(sharedAdventures.id, key))
.execute();
// Assuming result is an array with a single object
let rawData = result[0];
// Parse the data field, which contains a JSON string
let adventures = JSON.parse(rawData.data as string);
// Map the parsed adventures to the Adventure interface
let adventureArray = adventures.map((item: any) => {
return {
id: item.id,
name: item.name,
location: item.location,
date: item.date,
} as Adventure;
});
let name = rawData.name;
let date = rawData.date;
// Return the array of Adventure objects
return {
adventureArray,
name,
date,
};
}