Repolode
colinhacks

colinhacks/reylo

Importa archivos .sql en TypeScript con inferencia completa de tipos, validados contra tu base de datos de desarrollo y sin generar código.

Estrellas
1,511
Forks
18
Issues abiertos
10
Último commit
hace 19 horas

¿Qué es?

Reylo permite importar una consulta SQL desde un archivo .sql a TypeScript y llamarla como si fuera una función. Los tipos de las filas del resultado y de los parámetros se derivan del propio SQL al preparar la consulta contra tu base de datos de desarrollo, así que no necesitas definir tipos de fila manualmente ni mantener archivos generados sincronizados.

Como el comprobador de tipos consulta directamente a Reylo, una columna mal escrita, un parámetro incorrecto o una tabla eliminada aparecen como errores de tipo en tsc y en el editor. Reylo infiere la nulabilidad, si una consulta devuelve una fila, cero o una fila, o varias, y las uniones derivadas de enums o restricciones check. Es compatible con Postgres, MySQL y SQLite, y funciona con drivers como pg, postgres.js, mysql2, better-sqlite3 y Bun.sql. Se basa en los content mappers de TypeScript 7.1, que actualmente están en beta.

Funciones clave

  • 01Importa archivos .sql como funciones de consulta tipadas que se pueden invocar.
  • 02Deriva los tipos de filas y parámetros del SQL, usando una base de datos de desarrollo.
  • 03Muestra los errores de SQL como errores de TypeScript en tsc y en el editor.
  • 04Infiere la nulabilidad, la cardinalidad y las uniones de enums.
  • 05Funciona con Postgres, MySQL y SQLite, y permite elegir el driver.

Casos de uso

  • Mantener los tipos de fila de TypeScript sincronizados con un esquema de base de datos que cambia.
  • Escribir SQL optimizado manualmente sin renunciar a la seguridad de tipos ni usar un ORM.
  • Permitir que agentes de programación modifiquen consultas y que el comprobador de tipos detecte usos desactualizados.

Inicio rápido

  1. 1

    Instala Reylo

    npm install reylo
  2. 2

    Instala el motor de tu base de datos (Postgres, MySQL o SQLite)

    npm install -D @reylosql/postgres
  3. 3

    Configura DATABASE_URL en .env para que apunte a tu base de datos de desarrollo

  4. 4

    Ejecuta el código con Reylo cargado en Node

    node --env-file=.env --import reylo/register main.ts

Antes de usarlo

  • Requiere TypeScript 7.1, que actualmente está en fase beta.
  • Requiere Node 24 o posterior y una base de datos de desarrollo en ejecución.
  • La comprobación de tipos necesita la opción --runExternalCode para que tsc pueda ejecutar los mapeadores de contenido.

Destacado en Repolode Weekly

En colecciones

Temas

Preguntas frecuentes

¿Qué es reylo?
Importa archivos .sql en TypeScript con inferencia completa de tipos, validados contra tu base de datos de desarrollo y sin generar código. Reylo permite importar una consulta SQL desde un archivo .sql a TypeScript y llamarla como si fuera una función. Los tipos de las filas del resultado y de los parámetros se derivan del propio SQL al preparar la consulta contra tu base de datos de desarrollo, así que no necesitas definir tipos de fila manualmente ni mantener archivos generados sincronizados.
¿reylo es gratuito? ¿Qué licencia tiene?
reylo es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿reylo sigue mantenido?
Mantenimiento activo. El último commit de reylo fue el 5 nov 2026.
¿Para qué puedo usar reylo?
Mantener los tipos de fila de TypeScript sincronizados con un esquema de base de datos que cambia. Escribir SQL optimizado manualmente sin renunciar a la seguridad de tipos ni usar un ORM. Permitir que agentes de programación modifiquen consultas y que el comprobador de tipos detecte usos desactualizados.
¿Cómo se instala reylo?
Instala Reylo: npm install reylo Instala el motor de tu base de datos (Postgres, MySQL o SQLite): npm install -D @reylosql/postgres Configura DATABASE_URL en .env para que apunte a tu base de datos de desarrollo Ejecuta el código con Reylo cargado en Node: node --env-file=.env --import reylo/register main.ts
¿Dónde consigo reylo?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/colinhacks/reylo

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados