import type { Measurement, MeasurementBase } from '@repo/shared-types'; import { sql } from './lib'; // Uncomment for debugging queries sql.options.debug = (_, query, parameters) => console.log(query, parameters.length ? parameters : ''); // TODO: automatically log if query takes too long export const db = { $connect: async (): Promise => { await sql`SELECT 1`; }, $shutdown: async (): Promise => sql.end({ timeout: 5 }), measurements: { createMany: async (measurements: MeasurementBase[]): Promise => { await sql`INSERT INTO measurements ${sql(measurements)}`; }, findMany: async (hours: number): Promise => { const createdAtGt = new Date(Date.now() - hours * 60 * 60 * 1000); return await sql`SELECT * FROM measurements WHERE created_at > ${createdAtGt} ORDER BY created_at ASC`; } } };