2 个版本

0.1.0 2021 年 3 月 6 日
0.1.0-alpha.02020 年 4 月 9 日

#4#artemis

MIT/Apache

510KB
13K SLoC

Rust 6.5K SLoC // 0.0% comments GraphQL 6.5K SLoC // 0.0% comments

此 crate 允许您静态生成使用 Artemis 所需的所有文件。虽然您可以手动编写这些文件,但它们相当复杂,手动编写很容易引入错误,因此此模块允许您从 .graphql 文件自动生成它们。除了文件之外,您还需要一个以 JSON 或 .graphql 格式进行查询的 schema,或者一个启用了查询的服务器。请注意,第二个选项需要启用 introspect 功能。

用法

use artemis_build::CodegenBuilder;

CodegenBuilder::new()
    .introspect_schema("https://127.0.0.1:8080/graphql", None, Vec::new())
    .unwrap()
    .add_query("my_query.graphql")
    .with_out_dir("src/queries")
    .build();

唯一必需的选项是 schema - 在这种情况下,我们从 https://127.0.0.1:8080/graphql 中查询一个,没有授权头和额外的头 - 但如果您至少没有调用一次 add_query,代码生成器将不会做很多事情。输出目录指定输出查询模块的目录。它将在该目录中生成一个 mod.rs 文件,并为每个查询和全局查询枚举(用于 WASM 支持)生成一个文件。 请确保此目录中不存在 mod.rs,否则它将被覆盖。

输出目录默认为 OUT_DIR,但为了良好的自动补全,我建议将文件放在 src 中的某个地方,以便您的 IDE 识别它们。

有关更多信息,请参阅每个函数定义。

依赖项

~3–18MB
~259K SLoC