Files
brewpi/src/routes/brews/[date]/+page.server.ts
Kevin 4d77088764 Feat/prerender and state (#8)
* pre-load data behind link elements on hover

* Enable SSR and prerendering of pages in 'auto' mode

* merge relay & regulator state in /api/state

This helps when updating relays and receiving state of relays and regulator state (idle,
heating or cooling) after emitting relay change.
2025-01-12 18:34:16 +01:00

32 lines
867 B
TypeScript

import { error } from '@sveltejs/kit';
import brews from '../../../brews.json';
import { fetchHumidity, fetchTemperature } from '../../../lib/server/graphQueryGenerator';
import type { PageLoad } from './$types';
async function fetchGraphData(brew) {
const { date } = brew;
const start = new Date(date * 1000 - 86400000);
const end = new Date(date * 1000 + 4838400000);
const size = 200;
const [temperature, humidity] = await Promise.all([
fetchTemperature(start, end, size),
fetchHumidity(start, end, size)
]);
return { temperature, humidity };
}
export const load = (async ({ params }) => {
const { date } = params;
const brew = brews.brews.find((b) => b?.date === date);
if (!brew) {
throw error(404, 'Brew not found');
}
const graphData = await fetchGraphData(brew);
return { brew, graphData };
}) satisfies PageLoad;