1个不稳定版本
0.0.1 | 2023年12月3日 |
---|
#38 在 #convex
22KB
370 行
Convex TypeGen
ConvexDB类型生成器是一个将convex schema.ts转换为rust类型的工具。我创建这个项目是因为对于后端工作,我更喜欢Rust而不是TypeScript,并且我希望能够在Rust中使用convex模式。
因此,我希望使用这个库的任何人都能发现它很有帮助。我始终愿意添加更多功能,但现在,主要目标是让后端的query
和mutations
具有类型检查。由于复杂性,我还没有为typescript函数提供参数解析,但希望将来能够添加。
安装
cargo install convex-typegen
编辑你的Cargo.toml文件
安装后,你需要将库设置为你的Cargo.toml
文件中的构建依赖项。
[build-dependencies]
convex-typegen = "0.0.1"
如有需要,更改到最新版本
创建构建脚本
在你的项目根目录中创建一个`build.rs``文件,内容如下
use convex_typegen::generate_convex_types;
fn main()
{
println!("cargo:rerun-if-changed=convex/schema.ts");
let config = convex_typegen::Configuration {
convex_schema_path: String::from("./convex/schema.ts"),
code_gen_path: String::from("./src/schema.rs"),
};
match generate_convex_types(Some(&config)) {
Ok(_) => {}
Err(e) => {
panic!("Error: {:?}", e);
}
}
println!("Build.rs completed successfully!");
}
这个build.rs
文件将在src
目录中生成schema.rs
文件。你可以将路径更改为任何你想要的。
编辑你的main.rs文件
在生成模式文件后,你需要让你的main.rs
文件了解它。将以下行添加到你的main.rs文件中
mod schema;
现在你准备好了!你的convex query
和mutations
将在Rust中进行类型检查!
示例查询
client.query(schema::Users::FindAll.to_string(), maplit::btreemap! {}).await;
待办事项
- [] 支持函数参数解析/类型检查(可能)
依赖关系
~6–15MB
~186K SLoC