bun-sqlgen: tipos generados para consultas de Bun.sql sin ORM

Fuentes: bun-sqlgen: type-safe SQL for Bun.sql queries, no ORM

bun-sqlgen es una herramienta de generación de tipos para consultas realizadas con Bun.sql, el cliente SQL nativo de Bun. Su objetivo es ofrecer SQL tipado y seguro frente al esquema de la base de datos sin recurrir a un ORM, sin genéricos manuales y sin tipos escritos a mano.

El flujo de trabajo parte de las migraciones SQL como fuente de verdad del esquema, que pueden ubicarse en cualquier carpeta. A partir de ellas, la herramienta analiza cada consulta etiquetada con un nombre —por ejemplo, sql.GetUser...— y genera el tipo de la fila resultante respetando la nulabilidad de cada columna. El proceso se ejecuta contra una base de datos PostgreSQL o SQLite real, sin necesidad de Docker, lo que permite detectar columnas inexistentes o SQL mal formado en tiempo de compilación. El equipo indica que es lo bastante rápido para reejecutarse en cada guardado.

El uso básico consiste en envolver el cliente SQL con la función withTypes y etiquetar cada consulta con un nombre. Tras ejecutar el comando bun bun-sqlgen generate, se genera el archivo src/queries.gen.d.ts, pensado para incluirse en el repositorio. Con ese archivo, accesos como user.email que no existan en la fila producen un error de TypeScript, y operaciones sobre campos opcionales, como user.display_name.length, se marcan como posiblemente nulas automáticamente. La documentación cubre ambos dialectos, anulación de nulabilidad, transacciones y opciones de configuración, y la carpeta examples incluye proyectos ejecutables de muestra. Se distribuye como @ilbertt/bun-sqlgen en npm.