Skip to content

DrizzleAdapter

Connect Hiroki to PostgreSQL or SQLite via Drizzle ORM.

Work in progress

hiroki-drizzle is at v0.1.0. The adapter skeleton is in place — full HirokiFilter → Drizzle where mapping is under active development.

Installation

bash
npm install hiroki-drizzle drizzle-orm

Peer dependencies: drizzle-orm >=0.30.0, hiroki >=3.0.0

Usage

ts
import hiroki from 'hiroki';
import { DrizzleAdapter } from 'hiroki-drizzle';
import { drizzle } from 'drizzle-orm/node-postgres';
import { users } from './schema'; // your Drizzle table schema

const db = drizzle(connectionString);

hiroki.importModel('Users', {
  adapter: new DrizzleAdapter('Users', { db, table: users }),
});

Constructor

ts
new DrizzleAdapter(modelName: string, config: DrizzleAdapterConfig)
OptionTypeDescription
modelNamestringResource name used for routing and logging
config.dbDrizzleInstanceDrizzle database instance
config.tableTableDrizzle table schema object

Logger injection

ts
import hiroki, { type HirokiLogger } from 'hiroki';
import { DrizzleAdapter } from 'hiroki-drizzle';

const adapter = new DrizzleAdapter('Users', { db, table: users });

// Logger is injected automatically by the controller after importModel
hiroki.importModel('Users', { adapter });

HirokiFilter operators (planned)

When fully implemented, DrizzleAdapter will translate all HirokiFilter operators to Drizzle where conditions:

OperatorDrizzle equivalent
eqeq(col, val)
nene(col, val)
gtgt(col, val)
gtegte(col, val)
ltlt(col, val)
ltelte(col, val)
ininArray(col, val)
ninnotInArray(col, val)
regexlike(col, pattern)

Contributing

Source: packages/hiroki-drizzle

Released under the MIT License.