Repolode
colinhacks

colinhacks/reylo

Импортируйте .sql-файлы в TypeScript с полной проверкой типов по dev-базе данных — без генерации кода.

Звёзды
1,511
Форки
18
Открытые issues
10
Последний коммит
17 часов назад

Что это?

Reylo позволяет импортировать SQL-запрос из .sql-файла в TypeScript и вызывать его как функцию. Типы строк результата и параметров выводятся непосредственно из SQL: запрос подготавливается в вашей базе для разработки, поэтому не нужно вручную описывать типы строк или следить за актуальностью сгенерированных файлов.

Поскольку проверка типов напрямую обращается к Reylo, опечатка в названии столбца, неверный параметр или удалённая таблица приводят к ошибке типов в tsc и редакторе. Reylo определяет nullable-поля, возвращает ли запрос одну строку, ноль или одну строку либо много строк, а также выводит объединения типов из enum или ограничений check. Поддерживаются Postgres, MySQL и SQLite, а также такие драйверы, как pg, postgres.js, mysql2, better-sqlite3 и Bun.sql. Для работы Reylo использует content mappers из TypeScript 7.1, которые пока находятся в бета-версии.

Ключевые возможности

  • 01Импортирует .sql-файлы как типизированные функции запросов, которые можно вызывать.
  • 02Выводит типы строк и параметров из SQL-запросов, проверяемых по dev-базе данных.
  • 03Сообщает об ошибках в SQL как об ошибках TypeScript в tsc и редакторе.
  • 04Определяет nullable-поля, количество возвращаемых строк и объединения типов из enum.
  • 05Поддерживает Postgres, MySQL и SQLite, а драйвер можно выбрать самостоятельно.

Сценарии использования

  • Поддерживать типы строк в TypeScript в соответствии с меняющейся схемой базы данных.
  • Писать вручную оптимизированный SQL с проверкой типов, не используя ORM.
  • Позволять coding agents менять запросы, пока проверка типов выявляет места вызова, не соответствующие обновлённым запросам.

Быстрый старт

  1. 1

    Установите Reylo

    npm install reylo
  2. 2

    Установите движок для вашей базы данных (Postgres, MySQL или SQLite)

    npm install -D @reylosql/postgres
  3. 3

    Укажите в .env переменную DATABASE_URL, чтобы она ссылалась на базу данных для разработки

  4. 4

    Запустите код с загруженным в Node Reylo

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

Что важно знать

  • Требуется TypeScript 7.1, который сейчас находится в бета-версии.
  • Требуется Node 24 или новее и работающая база данных для разработки.
  • Для проверки типов нужен флаг --runExternalCode, чтобы tsc мог запускать мапперы содержимого.

В выпуске Repolode Weekly

В подборках

Темы

Частые вопросы

Что такое reylo?
Импортируйте .sql-файлы в TypeScript с полной проверкой типов по dev-базе данных — без генерации кода. Reylo позволяет импортировать SQL-запрос из .sql-файла в TypeScript и вызывать его как функцию. Типы строк результата и параметров выводятся непосредственно из SQL: запрос подготавливается в вашей базе для разработки, поэтому не нужно вручную описывать типы строк или следить за актуальностью сгенерированных файлов.
reylo можно использовать бесплатно? Какая у него лицензия?
reylo распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
reylo всё ещё поддерживается?
Активно поддерживается. Последний коммит в reylo — 5 нояб. 2026 г..
Для чего можно использовать reylo?
Поддерживать типы строк в TypeScript в соответствии с меняющейся схемой базы данных. Писать вручную оптимизированный SQL с проверкой типов, не используя ORM. Позволять coding agents менять запросы, пока проверка типов выявляет места вызова, не соответствующие обновлённым запросам.
Как установить reylo?
Установите Reylo: npm install reylo Установите движок для вашей базы данных (Postgres, MySQL или SQLite): npm install -D @reylosql/postgres Укажите в .env переменную DATABASE_URL, чтобы она ссылалась на базу данных для разработки Запустите код с загруженным в Node Reylo: node --env-file=.env --import reylo/register main.ts
Где скачать reylo?
Исходный код и инструкции по установке — на GitHub: https://github.com/colinhacks/reylo

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты