ilbertt/bun-sqlgen
ilbertt/bun-sqlgen has 113 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 11:12 UTC. Last push 2026-10-14.
Gemessener Sternzuwachs
- in 24h
- 0
- in 7 days
- Verlauf wird gesammelt
- in 15 days
- Verlauf wird gesammelt
- in 1 month
- Verlauf wird gesammelt
Nettoänderungen in überlappenden Zeiträumen, keine Tagessummen. Fehlende Messwerte bleiben leer. Sterne zeigen Interesse, nicht Qualität.
Über uns
Types generator for your Bun.sql queries
DatenREADME.md
Originalbun-sqlgen
Types generator for your
Bun.sqlqueries
You don't need an ORM to have type-safe SQL statements in your Bun application.
@ilbertt/bun-sqlgen is a codegen tool that validates your queries against your schema and generates their result types.
No running database is needed at codegen time, because your migrations run against an in-memory Wasm Postgres (PGlite).
Install
bun add @ilbertt/bun-sqlgen
Quick start
Your migrations are the source of truth for the schema — put them in any folder:
-- db/migrations/0001_init.sql CREATE TABLE users ( id bigint PRIMARY KEY GENERATED ALWAYS AS IDENTITY, email text NOT NULL, display_name text );Wrap your client with
withTypesand tag each query with its name:import { withTypes } from '@ilbertt/bun-sqlgen'; import { SQL } from 'bun'; const sql = withTypes(new SQL('postgres://localhost/example')); export async function getUser(id: number) { const [user] = await sql.GetUser` SELECT id, email, display_name FROM users WHERE id = ${id} `; return user; // { id: string; email: string; display_name: string | null } }Generate the types:
bun bun-sqlgen generate 'src/**/*.ts' --migrations db/migrationsThis writes
src/queries.gen.ts— commit it. With it in place,user.whateveris a compile error anduser.display_name.lengthis flagged as possibly-null, all by plaintsc.The same file also describes your schema — every table and view with its columns, index names and constraint names:
import type { DatabaseTables } from '@ilbertt/bun-sqlgen'; type UserRow = DatabaseTables['users']['columns']; // { id: string; email: string; … } type UserIndex = DatabaseTables['users']['indexes']; // 'users_pkey' | 'users_email_idx'
Examples
Runnable projects live in the examples/ folder.
Contributing
Development setup and conventions are in CONTRIBUTING.md.