UNPKG

@rstore/nuxt-drizzle

Version:
24 lines (23 loc) 991 B
import { and, eq } from "drizzle-orm"; import { defineEventHandler, getRouterParams, readBody } from "h3"; import { getDrizzleDialect, getDrizzleTableFromModel, rstoreUseDrizzle } from "../utils/index.js"; export default defineEventHandler(async (event) => { const { model: modelName } = getRouterParams(event); const { table } = getDrizzleTableFromModel(modelName); const body = await readBody(event); const q = rstoreUseDrizzle().insert(table).values(body); const dialect = getDrizzleDialect(); if (dialect === "pg" || dialect === "sqlite") { const result = await q.returning(); return result[0]; } else if (dialect === "mysql" || dialect === "singlestore") { const result = await q.$returningId(); const primaryKey = result[0]; const select = await rstoreUseDrizzle().select().from(table).where(and( ...Object.entries(primaryKey).map(([key, value]) => { return eq(table[key], value); }) )).limit(1); return select[0]; } });