Bun-sqlgen: 為 Bun 提供無需 ORM 的型別安全原始 SQL

Bun-sqlgen: 為 Bun 提供無需 ORM 的型別安全原始 SQL

Bun-sqlgen 概覽

Bun-sqlgen 是一款專為 Bun 執行環境設計的工具,旨在提供型別安全的原始 SQL。它允許開發者執行原始 SQL 查詢,同時確保結果集具有正確的型別,從而避免完整物件關係對照器 (ORM) 的開銷與抽象層。

核心功能與目標

Bun-sqlgen 的主要目標是彌合原始 SQL 與 TypeScript 本身型別安全之間的差距。它根據開發者編寫的相同 SQL 查詢來生成型別,確保輸入參數和輸出列根據 SQL 資料庫結構進行正確的型別化。

工作原理

Bun-sqlgen 提供了一種從原始 SQL 查詢生成 TypeScript 型別的機制。透過分析 SQL,該工具會生成對應的 TypeScript 介面或型別,用以表示該查詢的結果集。這種方法允許開發者保留原始 SQL 的完整功能——例如複雜的連接 (joins)、視窗函數 (window functions) 以及特定資料庫引擎的獨特功能——同時獲得與 ORM 相同程度的型別安全。

與 ORM 的比較

與傳統的 ORM 不同,Bun-sqlgen 並非完整的抽象層。它不管理定義模型中物件與資料表之間的關係。相反,它專注於 SQL 查詢本身的輸出。這消除了開發者必須在相同程度的型別安全與對工具所產生的 SQL 控制權之間做出權衡的常見困境。

專案狀態與可用性

Bun-sqlgen 作為開源專案可在 GitHub 上取得。開發者可以將其整合到他們的 Bun 執行環境中,以實作型別安全的資料庫互動,而無需採用完整的 ORM。

Sources