#sql-query #typescript #sql #javascript #sqlx #cli

bin+lib sqlx-ts

一种用于编译时安全 SQL 查询的 Javascript/Typescript 工具

2 个版本

0.1.1 2023 年 4 月 9 日
0.1.0 2022 年 6 月 10 日
0.1.0-alpha.112023 年 4 月 9 日
0.1.0-alpha.62022 年 6 月 11 日

1751命令行工具

每月 24 次下载

MIT 许可证

340KB
2.5K SLoC

Rust 2K SLoC // 0.1% comments Shell 178 SLoC SQL 109 SLoC // 0.1% comments TypeScript 68 SLoC // 0.6% comments JavaScript 4 SLoC

SQLx-ts

🧰 Typescript/Javascript SQL 工具包

旨在让 Node 开发者摆脱 ORM 随意生成的 SQL 查询

SQLx-ts 是一个 CLI 应用程序,它具有编译时检查的查询,无需 DSL,并在运行时防止执行损坏的 SQL 查询。

  • 编译时检查查询 - 永远不要将损坏的 SQL 查询发布到生产环境
  • Typescript 类型生成 - 根据原始 SQL 生成类型定义,您可以使用任何 MySQL 或 PostgreSQL 驱动程序使用它们
  • 数据库无关 - 支持 PostgreSQLMySQL
  • Typescript 和 JavaScript - 支持 TypeScript 和 JavaScript


安装

安装 sqlx-ts npm 模块

如果您正在使用 npm

$ npm install sqlx-ts

如果您正在使用 yarn

$ yarn add sqlx-ts

在您的代码中使用 sqlx-ts

在基于 TypeScript 的项目中

import { sql } from 'sqlx-ts'

// ...
const query = sql`SELECT * FROM some_table;`
// ...

在基于 Babel 的项目中

import { sql } from 'sqlx-ts'
const query = sql`SELECT * FROM some_table;`

// ... or

const { sql } = require('sqlx-ts')
const query = sql`SELECT * FROM some_table;`
安装二进制文件
使用 cargo

使用 cargo 安装 sqlx-ts

$ cargo install sqlx-ts
使用 install.sh

sqlx-ts 的二进制文件名为 sqlx-ts

sqlx-ts 预编译二进制文件的存档适用于 Windows、macOS 和 Linux。Linux 和 Windows 的二进制文件是静态可执行文件。未明确提及平台的使用者建议下载这些存档之一。

如果您是 macOS 用户,则可以通过 install.sh 安装 sqlx-ts

$ curl -LSfs https://jasonshin.github.io/sqlx-ts/install.sh | \
    sh -s -- --os macos

如果您是 Windows 用户,则可以通过 install.sh 安装 sqlx-ts

$ curl -LSfs https://jasonshin.github.io/sqlx-ts/install.sh | \
    sh -s -- --os win32

如果您是 Linux 用户,则可以通过 install.sh 安装 sqlx-ts

$ curl -LSfs https://jasonshin.github.io/sqlx-ts/install.sh | \
    sh -s -- --os linux

要安装特定工件,请 访问发布页面以找到工件的准确名称

$ curl -LSfs https://jasonshin.github.io/sqlx-ts/install.sh | \
    sh -s -- --artifact sqlx_ts_v0.1.0_x86_64-apple-darwin.tar.gz

升级到新版本可以通过获取sqlx-ts工件的下个版本,并使用install.sh中的--force命令完成。

$ curl -LSfs https://jasonshin.github.io/sqlx-ts/install.sh | \
    sh -s -- --artifact sqlx_ts_v0.2.0_x86_64-apple-darwin.tar.gz --force

对于更高级的使用,请查看install.sh中的--help命令。

$ curl -LSfs https://jasonshin.github.io/sqlx-ts/install.sh | \
    sh -s -- --help

动机

Rust保证代码编译时安全性的哲学一直激励着我。Rust仍然很新,许多经验丰富的开发者可能认为Rust提高的效益/成本比的说法尚未得到证实。然而,我们可以从这些新技术中学到一些经验,并将它们应用到我们的日常语言中,如JavaScript和TypeScript。《SQLx》(https://github.com/launchbadge/sqlx)是这方面的一个很好的例子,尽管这个想法与Rust没有直接关系,但它的哲学与Rust的整体生态系统很好地相符。

依赖项

~24–39MB
~663K SLoC