@emergente-labs/effect-sql-model
v0.1.1
Published
Compile Effect Schema models into Drizzle ORM table definitions
Maintainers
Readme
@emergente-labs/effect-sql-model
Compile Effect Schema / @effect/sql/Model definitions into Drizzle ORM tables.
Define your model once and generate:
- Drizzle table definitions
- variant-aware model fields (
select,insert,update,json) - schema-driven column metadata and table config
Installation
npm install @emergente-labs/effect-sql-model effect drizzle-orm @effect/sqlQuick Start
import { Effect, Schema as S } from "effect";
import { Model } from "@effect/sql";
import { schemaDrizzle } from "@emergente-labs/effect-sql-model";
import { Config as PgConfig } from "@emergente-labs/effect-sql-model/pg";
const { field, compileModel } = schemaDrizzle(PgConfig);
class User extends Model.Class<User>("User")({
id: S.UUID.pipe(field((col) => col.primaryKey())),
email: S.String,
age: S.Int,
}) {}
const table = Effect.runSync(compileModel(User));Features
- AST-based compiler from Effect Schema to Drizzle columns
- PostgreSQL adapter included (
/pg) - adapter extension points for additional dialects
- field-level and table-level annotations
- circular-reference aware model compilation
- type-level tests for inferred column builders
License
MIT
