All checks were successful
Test and deploy staging / staging (push) Successful in 11m52s
27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
import { db } from '$lib/server/db';
|
|
import { sql } from 'drizzle-orm';
|
|
import type { PageServerLoad } from './$types';
|
|
|
|
export const load: PageServerLoad = async () => {
|
|
const [stats, dimensions, markets] = await Promise.all([
|
|
db.execute(sql`SELECT
|
|
(SELECT count(*)::int FROM cs_market_items) AS items,
|
|
(SELECT greatest(reltuples::bigint, 0) FROM pg_class WHERE oid = 'cs_price_observations'::regclass) AS observations,
|
|
(SELECT min(observed_at) FROM cs_price_observations) AS earliest,
|
|
(SELECT max(observed_at) FROM cs_price_observations) AS latest`),
|
|
db.execute(sql`SELECT key, count(DISTINCT value)::int AS values
|
|
FROM cs_item_dimensions GROUP BY key ORDER BY key`),
|
|
db.execute(sql`SELECT source, currency, kind FROM cs_price_streams ORDER BY 1, 2, 3`)
|
|
]);
|
|
return {
|
|
stats: stats[0] as {
|
|
items: number;
|
|
observations: string;
|
|
earliest: Date | null;
|
|
latest: Date | null;
|
|
},
|
|
dimensions: dimensions as unknown as { key: string; values: number }[],
|
|
markets: markets as unknown as { source: string; currency: string; kind: string }[]
|
|
};
|
|
};
|