2 个版本
0.1.1 |
|
---|---|
0.1.0 |
|
0.1.0-alpha.11 | 2023 年 4 月 9 日 |
0.1.0-alpha.6 | 2022 年 6 月 11 日 |
1751 在 命令行工具 中
每月 24 次下载
340KB
2.5K SLoC
SQLx-ts
SQLx-ts 是一个 CLI 应用程序,它具有编译时检查的查询,无需 DSL,并在运行时防止执行损坏的 SQL 查询。
- 编译时检查查询 - 永远不要将损坏的 SQL 查询发布到生产环境
- Typescript 类型生成 - 根据原始 SQL 生成类型定义,您可以使用任何 MySQL 或 PostgreSQL 驱动程序使用它们
- 数据库无关 - 支持 PostgreSQL 和 MySQL
- 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