Repolode
colinhacks

colinhacks/reylo

コード生成なしで、.sqlファイルをTypeScriptにインポート。開発用DBで検証し、型を完全に推論します。

スター
1,536
フォーク
17
未解決の Issue
20
最終コミット
3 時間前

これは何?

Reyloを使うと、.sqlファイル内のSQLクエリをTypeScriptにインポートし、関数のように呼び出せます。クエリを開発用DBでprepareすることで、結果行とパラメーターの型をSQL自体から導出するため、行の型を手書きしたり、同期を保つために生成ファイルを管理したりする必要はありません。

型チェッカーはReyloに直接クエリするため、列名の誤記、誤ったパラメーター、テーブルの削除は、tscやエディター上で型エラーとして検出されます。ReyloはNULL許容性、クエリが1行、0行または1行、複数行のどれを返すか、さらにenumやcheck制約に基づくunion型を推論します。Postgres、MySQL、SQLiteに対応し、pg、postgres.js、mysql2、better-sqlite3、Bun.sqlなどのドライバーで動作します。現在ベータ版のTypeScript 7.1 content mappersを利用しています。

主な機能

  • 01.sqlファイルを、型付きの呼び出し可能なクエリ関数としてインポートします。
  • 02開発用DBでSQLを検証し、行とパラメーターの型を導出します。
  • 03SQLの誤りをtscやエディター上でTypeScriptエラーとして報告します。
  • 04NULL許容性、行数、enumのunion型を推論します。
  • 05Postgres、MySQL、SQLiteに対応し、任意のドライバーを利用できます。

ユースケース

  • データベーススキーマの変更に合わせて、TypeScriptの行型を同期させる。
  • ORMを使わずに型安全性を保ちながら、細かく調整したSQLを書く。
  • コーディングエージェントにクエリを変更させ、型チェッカーで古くなった呼び出し元を検出する。

クイックスタート

  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以降と、起動中の開発用データベースが必要です。
  • 型チェックでは、tscがコンテンツマッパーを実行できるように--runExternalCodeフラグが必要です。

Repolode 週刊で紹介

収録されている特集

トピック

よくある質問

reylo とは?
コード生成なしで、.sqlファイルをTypeScriptにインポート。開発用DBで検証し、型を完全に推論します。 Reyloを使うと、.sqlファイル内のSQLクエリをTypeScriptにインポートし、関数のように呼び出せます。クエリを開発用DBでprepareすることで、結果行とパラメーターの型をSQL自体から導出するため、行の型を手書きしたり、同期を保つために生成ファイルを管理したりする必要はありません。
reylo は無料で使えますか?ライセンスは?
reylo は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
reylo は今もメンテナンスされていますか?
活発にメンテナンス中。reylo の最終コミットは 2026年11月7日 です。
reylo は何に使えますか?
データベーススキーマの変更に合わせて、TypeScriptの行型を同期させる。 ORMを使わずに型安全性を保ちながら、細かく調整したSQLを書く。 コーディングエージェントにクエリを変更させ、型チェッカーで古くなった呼び出し元を検出する。
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 をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト