Skip to content

Latest commit

 

History

History

README.md

@forinda/kickjs-drizzle

⚠️ Deprecated — no longer maintained. This was an early-adoption adapter. Wire Drizzle directly in your app (BYO), or use @forinda/kickjs-db — the built-in Kick ORM — if you prefer to skip external ORMs. Importing this package logs a one-time runtime warning (silence with KICKJS_SUPPRESS_DEPRECATION=1). It will be removed in a future major.

Drizzle ORM adapter for KickJS — DI integration, lifecycle management, and a DrizzleQueryAdapter that translates ParsedQuery into Drizzle where / orderBy / limit / offset.

Install

kick add drizzle

Quick Example

import { drizzle } from 'drizzle-orm/postgres-js'
import postgres from 'postgres'
import { bootstrap, getEnv } from '@forinda/kickjs'
import { DrizzleAdapter } from '@forinda/kickjs-drizzle'
import * as schema from './schema'
import { modules } from './modules'

const client = postgres(getEnv('DATABASE_URL'))
const db = drizzle(client, { schema })

export const app = await bootstrap({
  modules,
  adapters: [DrizzleAdapter({ db, onShutdown: () => client.end() })],
})

Inject the typed db in services:

import { Inject, Service } from '@forinda/kickjs'
import { DRIZZLE_DB } from '@forinda/kickjs-drizzle'
import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js'
import * as schema from './schema'

@Service()
class UserService {
  constructor(@Inject(DRIZZLE_DB) private db: PostgresJsDatabase<typeof schema>) {}
}

For the multi-tenant DrizzleTenantAdapter see the examples/multi-tenant-drizzle-api app.

Documentation

kickjs.app/api/drizzle

License

MIT