Skip to content

Commit bc35afb

Browse files
committed
fix: add support for Drizzle types
1 parent 0ab19a9 commit bc35afb

File tree

9 files changed

+42
-19
lines changed

9 files changed

+42
-19
lines changed

docs/content/docs/3.guides/2.drizzle.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ export default defineTask({
185185
createdAt: new Date()
186186
}
187187
]
188-
await useDrizzle().insert(tables.users).values(users)
188+
useDrizzle().insert(tables.users).values(users)
189189
return { result: 'success' }
190190
}
191191
})
@@ -199,7 +199,7 @@ To run the seed task, start your dev server and open the Nuxt DevTools. Go to _T
199199

200200
```ts [server/api/todos/index.get.ts]
201201
export default eventHandler(async () => {
202-
const todos = await useDrizzle().select().from(tables.todos).all()
202+
const todos = useDrizzle().select().from(tables.todos).all()
203203

204204
return todos
205205
})
@@ -211,7 +211,7 @@ export default eventHandler(async () => {
211211
export default eventHandler(async (event) => {
212212
const { title } = await readBody(event)
213213

214-
const todo = await useDrizzle().insert(tables.todos).values({
214+
const todo = useDrizzle().insert(tables.todos).values({
215215
title,
216216
createdAt: new Date()
217217
}).returning().get()
@@ -227,7 +227,7 @@ export default eventHandler(async (event) => {
227227
const { id } = getRouterParams(event)
228228
const { completed } = await readBody(event)
229229

230-
const todo = await useDrizzle().update(tables.todos).set({
230+
const todo = useDrizzle().update(tables.todos).set({
231231
completed
232232
}).where(eq(tables.todos.id, Number(id))).returning().get()
233233

@@ -241,7 +241,7 @@ export default eventHandler(async (event) => {
241241
export default eventHandler(async (event) => {
242242
const { id } = getRouterParams(event)
243243

244-
const deletedTodo = await useDrizzle().delete(tables.todos).where(and(
244+
const deletedTodo = useDrizzle().delete(tables.todos).where(and(
245245
eq(tables.todos.id, Number(id))
246246
)).returning().get()
247247

playground/server/api/tests/db.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { sqliteTable, integer, text } from 'drizzle-orm/sqlite-core'
33
export default defineEventHandler(async () => {
44
const db0 = useDatabase('db')
55

6+
67
const _tables = await db0.sql`
78
SELECT
89
name,
@@ -14,7 +15,7 @@ export default defineEventHandler(async () => {
1415
name NOT LIKE 'sqlite_%' and name NOT LIKE '_litestream_%' and name NOT LIKE '__drizzle%'
1516
;`
1617

17-
const db = await useDrizzle()
18+
const db = useDrizzle()
1819

1920
const drizzleTables = await db.all(sql`
2021
SELECT

playground/server/api/todos/[id].delete.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export default eventHandler(async (event) => {
66
}).parse)
77

88
// List todos for the current user
9-
const db = await useDrizzle()
9+
const db = useDrizzle()
1010
const deletedTodo = await db.delete(tables.todos).where(and(
1111
eq(tables.todos.id, Number(id))
1212
)).returning().then(r => r[0])

playground/server/api/todos/[id].patch.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default eventHandler(async (event) => {
99
}).parse)
1010

1111
// List todos for the current user
12-
const db = await useDrizzle()
12+
const db = useDrizzle()
1313
const todo = await db.update(tables.todos).set({
1414
completed
1515
}).where(eq(tables.todos.id, Number(id))).returning().then(r => r[0])

playground/server/api/todos/index.get.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default eventHandler(async () => {
22
// List todos for the current user
3-
const db = await useDrizzle()
3+
const db = useDrizzle()
44
const todos = await db.select().from(tables.todos)
55

66
return todos

playground/server/api/todos/index.post.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default eventHandler(async (event) => {
44
}).parse)
55

66
// List todos for the current user
7-
const db = await useDrizzle()
7+
const db = useDrizzle()
88
const todo = await db.insert(tables.todos).values({
99
title,
1010
createdAt: new Date()

playground/server/utils/drizzle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ export const tables = {
2222
todos
2323
}
2424

25-
export async function useDrizzle() {
25+
export function useDrizzle() {
2626
return hubDrizzle({ schema: tables })
2727
}

playground/tsconfig.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
11
{
2-
"extends": "./.nuxt/tsconfig.json"
2+
"files": [],
3+
"references": [
4+
{
5+
"path": "./.nuxt/tsconfig.app.json"
6+
},
7+
{
8+
"path": "./.nuxt/tsconfig.server.json"
9+
},
10+
{
11+
"path": "./.nuxt/tsconfig.shared.json"
12+
},
13+
{
14+
"path": "./.nuxt/tsconfig.node.json"
15+
}
16+
]
317
}

src/features/database.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { mkdir, writeFile } from 'node:fs/promises'
22
import { defu } from 'defu'
33
import { join } from 'pathe'
4-
import { addServerImportsDir, addServerScanDir, addServerTemplate, addTypeTemplate, logger } from '@nuxt/kit'
4+
import { addServerImportsDir, addServerScanDir, addServerTemplate, addTemplate, addTypeTemplate, logger } from '@nuxt/kit'
55
import { copyDatabaseMigrationsToHubDir, copyDatabaseQueriesToHubDir } from '../runtime/database/server/utils/migrations/helpers'
66
import { logWhenReady } from '../features'
77
import { resolve } from '../module'
@@ -209,15 +209,23 @@ export function hubDrizzle(options) {
209209
}`
210210
}
211211

212-
addServerTemplate({
213-
filename: '#hub/drizzle-orm',
214-
getContents: () => drizzleOrmContent
212+
213+
// addServerTemplate({
214+
// filename: '#hub-drizzle-orm.mjs',
215+
// getContents: () => drizzleOrmContent
216+
// })
217+
const template = addTemplate({
218+
filename: 'hub/drizzle-orm.mjs',
219+
getContents: () => drizzleOrmContent,
220+
write: true
215221
})
222+
nuxt.options.nitro.alias!['#hub/drizzle-orm'] = template.dst
216223
addTypeTemplate({
217-
filename: 'types/hub/drizzle-orm.d.ts',
218-
getContents: () => drizzleOrmTypes
219-
})
224+
filename: 'hub/drizzle-orm.d.ts',
225+
getContents: () => drizzleOrmTypes,
226+
}, { nitro: true })
220227
addServerImportsDir(resolve('runtime/database/server/drizzle-utils'))
228+
console.log(nuxt.options.nitro.alias)
221229
}
222230
}
223231

0 commit comments

Comments
 (0)