From baa0fcd7c5510c5aac891bbdd73a766325c092f4 Mon Sep 17 00:00:00 2001 From: Norbert Maciaszek Date: Mon, 17 Nov 2025 18:53:46 +0100 Subject: [PATCH] feat: implement loaders --- src/lib/loaders/LoaderYear.ts | 11 +++++++++++ src/lib/loaders/index.ts | 3 +++ src/routes/+page.server.ts | 10 ++++++---- src/routes/+page.svelte | 2 ++ 4 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 src/lib/loaders/LoaderYear.ts create mode 100644 src/lib/loaders/index.ts diff --git a/src/lib/loaders/LoaderYear.ts b/src/lib/loaders/LoaderYear.ts new file mode 100644 index 0000000..42b2b1d --- /dev/null +++ b/src/lib/loaders/LoaderYear.ts @@ -0,0 +1,11 @@ +import { DB } from '$lib/integrations/db'; + +export const LoaderYear = (year?: number) => { + year = year ?? new Date().getFullYear(); + + return () => DB.getYear(year); +}; + +export const LoaderYears = () => { + return () => DB.getYears(); +}; diff --git a/src/lib/loaders/index.ts b/src/lib/loaders/index.ts new file mode 100644 index 0000000..0a7fd90 --- /dev/null +++ b/src/lib/loaders/index.ts @@ -0,0 +1,3 @@ +export const orchestrateLoaders = (loaders: (() => Promise)[]) => { + return Promise.all(loaders.map((loader) => loader())); +}; diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index c85fcfe..c0efa5a 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -1,10 +1,12 @@ -import { DB } from '$lib/integrations/db'; +import { orchestrateLoaders } from '$lib/loaders'; +import { LoaderYear } from '$lib/loaders/LoaderYear'; +import { LoaderYears } from '$lib/loaders/LoaderYear'; export const load = async () => { - const year = new Date().getFullYear(); - const yearData = await DB.getYear(year); + const [yearData, yearsData] = await orchestrateLoaders([LoaderYear(), LoaderYears()]); return { - year: yearData + year: yearData, + years: yearsData }; }; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 2379c65..1d750dc 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,8 +1,10 @@

{data.year.year}

+