#graphql #specification #web #config #following #deserialize #projects

graphql-config

本软件包提供了符合graphql-config规范的GraphQL配置的反序列化功能

2 个不稳定版本

使用旧的Rust 2015

0.2.0 2018年7月24日
0.1.0 2018年7月23日

#55 in #following

Apache-2.0 OR MIT

15KB
199

Build Status

graphql-config

本软件包提供了符合graphql-config规范的GraphQL配置的反序列化功能。

GraphQLConfiguration是整个JSON文档的类型。它包含顶级配置(在root字段中序列化)以及可选的项目特定配置在projects字段中。顶级配置和项目特定配置的形状完全相同。

此库尚不支持实验性配置选项

目前,此库遵循graphql-config规范的2.0.1版本

示例

let config = json!({
    "schemaPath": "./schema.graphql",
    "includes": ["./graphql/*.graphql"],
    "projects": {
        "amazingLibrary": {
            "schemaPath": "./amazingLibrary.schema.graphql"
        }
    }
});

let expected = GraphQLConfiguration {
    root: GraphQLProjectConfiguration {
        name: None,
        schema_path: Some("./schema.graphql".into()),
        includes: Some(vec!["./graphql/*.graphql".to_owned()]),
        excludes: None,
        extensions: None,
    },
    projects: Some(btreemap!{
        "amazingLibrary".to_owned() => GraphQLProjectConfiguration {
            schema_path: Some("./amazingLibrary.schema.graphql".into()),
            name: None,
            includes: None,
            excludes: None,
            extensions: None,
        },
    }),
};

let deserialized = serde_json::from_value::<GraphQLConfiguration>(config)?;

assert_eq!(deserialized, expected);

许可证:Apache-2.0 OR MIT

依赖项

~0.7–1.6MB
~35K SLoC