import type { PageServerLoad } from './$types'; | |
import { collections } from '$lib/server/db'; | |
export const load: PageServerLoad = async () => { | |
const products = await collections.products.find({ state: { $ne: 'draft' } }).toArray(); | |
const pictures = await collections.pictures | |
.find({ productId: { $in: products.map((p) => p._id) } }) | |
.sort({ createdAt: 1 }) | |
.toArray(); | |
const byId = Object.fromEntries(products.map((p) => [p._id, p])); | |
for (const picture of pictures) { | |
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion | |
byId[picture.productId!].photos = [...(byId[picture.productId!].photos || []), picture]; | |
} | |
return { | |
published: products.filter((p) => p.state === 'published' && p.stock), | |
retired: products.filter((p) => p.state === 'published' && !p.stock) | |
}; | |
}; | |