Repolode
colinhacks

colinhacks/reylo

Importe arquivos .sql no TypeScript com inferência completa de tipos, validação no banco de desenvolvimento e sem etapa de geração de código.

Estrelas
1,511
Forks
18
Issues abertas
10
Último commit
há 18 horas

O que é?

Reylo permite importar uma query SQL de um arquivo .sql para o TypeScript e chamá-la como uma função. Os tipos das linhas retornadas e dos parâmetros são derivados do próprio SQL, preparando a query no banco de desenvolvimento. Assim, não há tipos de linha escritos manualmente nem arquivos gerados para manter sincronizados.

Como o verificador de tipos consulta o Reylo diretamente, uma coluna com nome incorreto, um parâmetro errado ou uma tabela removida aparece como erro de tipo no tsc e no editor. Reylo infere a nulabilidade, se a query retorna uma linha, zero ou uma linha, ou várias, além de unions derivadas de enums ou restrições check. É compatível com Postgres, MySQL e SQLite, e funciona com drivers como pg, postgres.js, mysql2, better-sqlite3 e Bun.sql. Ele depende dos content mappers do TypeScript 7.1, que estão atualmente em beta.

Recursos principais

  • 01Importa arquivos .sql como funções de query tipadas e chamáveis.
  • 02Deriva os tipos das linhas e dos parâmetros a partir do SQL, consultando um banco de desenvolvimento.
  • 03Aponta erros no SQL como erros do TypeScript no tsc e no editor.
  • 04Infere nulabilidade, cardinalidade e unions de enums.
  • 05Funciona com Postgres, MySQL e SQLite e permite usar o driver de sua preferência.

Casos de uso

  • Manter os tipos de linha do TypeScript sincronizados com um esquema de banco de dados em constante mudança.
  • Escrever SQL ajustado manualmente mantendo a segurança de tipos, sem ORM.
  • Permitir que agentes de programação alterem queries, com o verificador de tipos detectando chamadas desatualizadas.

Início rápido

  1. 1

    Instale o Reylo

    npm install reylo
  2. 2

    Instale o mecanismo do seu banco de dados (Postgres, MySQL ou SQLite)

    npm install -D @reylosql/postgres
  3. 3

    Configure DATABASE_URL em .env para apontar para seu banco de dados de desenvolvimento

  4. 4

    Execute seu código com o Reylo carregado no Node

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

Antes de usar

  • Requer TypeScript 7.1, que está atualmente em beta.
  • Requer Node 24 ou posterior e um banco de dados de desenvolvimento em execução.
  • A verificação de tipos precisa da flag --runExternalCode para que o tsc possa executar os mapeadores de conteúdo.

Destaque no Repolode Weekly

Em coleções

Tópicos

Perguntas frequentes

O que é reylo?
Importe arquivos .sql no TypeScript com inferência completa de tipos, validação no banco de desenvolvimento e sem etapa de geração de código. Reylo permite importar uma query SQL de um arquivo .sql para o TypeScript e chamá-la como uma função. Os tipos das linhas retornadas e dos parâmetros são derivados do próprio SQL, preparando a query no banco de desenvolvimento. Assim, não há tipos de linha escritos manualmente nem arquivos gerados para manter sincronizados.
reylo é gratuito? Qual é a licença?
reylo é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
reylo ainda é mantido?
Manutenção ativa. O último commit de reylo foi em 5 de nov. de 2026.
Para que posso usar reylo?
Manter os tipos de linha do TypeScript sincronizados com um esquema de banco de dados em constante mudança. Escrever SQL ajustado manualmente mantendo a segurança de tipos, sem ORM. Permitir que agentes de programação alterem queries, com o verificador de tipos detectando chamadas desatualizadas.
Como instalar reylo?
Instale o Reylo: npm install reylo Instale o mecanismo do seu banco de dados (Postgres, MySQL ou SQLite): npm install -D @reylosql/postgres Configure DATABASE_URL em .env para apontar para seu banco de dados de desenvolvimento Execute seu código com o Reylo carregado no Node: node --env-file=.env --import reylo/register main.ts
Onde consigo reylo?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/colinhacks/reylo

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados