Skip to content

Commit 1f17c08

Browse files
committed
fix: handle all and run for database remote proxy
1 parent 1d46c01 commit 1f17c08

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

src/runtime/server/api/_hub/database/[command].post.ts

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ import { eventHandler, getValidatedRouterParams, readValidatedBody } from 'h3'
22
import { z } from 'zod'
33
import { useDatabase } from '../../../utils/database'
44

5+
const statementValidation = z.object({
6+
query: z.string().min(1).max(1e6).trim(),
7+
params: z.any().array(),
8+
})
9+
510
export default eventHandler(async (event) => {
611
// https://developers.cloudflare.com/d1/build-databases/query-databases/
712
const { command } = await getValidatedRouterParams(event, z.object({
@@ -36,12 +41,18 @@ export default eventHandler(async (event) => {
3641
statements.map(stmt => db.prepare(stmt.query).bind(...stmt.params))
3742
)
3843
}
39-
// command is all, raw or run
40-
const { query, params, columnNames } = await readValidatedBody(event, z.object({
41-
query: z.string().min(1).max(1e6).trim(),
42-
params: z.any().array(),
43-
columnNames: z.boolean().default(false)
44-
}).parse)
45-
// @ts-ignore
46-
return db.prepare(query).bind(...params).raw({ columnNames })
44+
45+
if (command === 'raw') {
46+
const { query, params, columnNames } = await readValidatedBody(event, z.object({
47+
query: z.string().min(1).max(1e6).trim(),
48+
params: z.any().array(),
49+
columnNames: z.boolean().default(false)
50+
}).parse)
51+
// @ts-ignore
52+
return db.prepare(query).bind(...params).raw({ columnNames })
53+
}
54+
55+
// command is all or run
56+
const { query, params } = await readValidatedBody(event, statementValidation.parse)
57+
return db.prepare(query).bind(...params)[command]()
4758
})

0 commit comments

Comments
 (0)