UNPKG

@rstore/nuxt-drizzle

Version:
28 lines (27 loc) 852 B
import { createError, eventHandler, getQuery, getRouterParams } from "h3"; import { getDrizzleCondition, getDrizzleTableFromModel, rstoreUseDrizzle } from "../utils/index.js"; export default eventHandler(async (event) => { const { model: modelName } = getRouterParams(event); const { table } = getDrizzleTableFromModel(modelName); const query = getQuery(event); const q = rstoreUseDrizzle().select().from(table); if (query.where) { try { const where = JSON.parse(query.where); if (where) { const condition = getDrizzleCondition(table, where); q.where(condition); } } catch (e) { console.error(e); throw createError({ statusCode: 400, statusMessage: "Invalid filter" }); } } if (query.limit != null) { q.limit(query.limit); } return q.$dynamic(); });