0.1.7 • Published 2 years ago
@tcwd/jsonschema-graphql v0.1.7
微搭数据源 graphql 解释器
将微搭数据源 jsonschema 动态转换成 graphql 类型和 resolver
用法
import { graphql } from 'graphql';
const transformer = new SchemaTransformer([...wedaJSONSchemas]);
const schema = transformer.getSchema(); // graphql schema
const result = graphql({
schema,
rootValue: {},
source: 'mutation{ xxxx }',
contextValue: {},
variableValues: {}
});
除了使用默认的 resolver
也可以自定义数据获取方法,一种是定义完全的 resolver
方法,另一种是自定义数据获取的 fetcher
方法。这两者都可以自定义部分方法来代替默认的,而两种的区别在于 resolver
会处理数据获取的完整方法,而 fetcher
只是数据获取方法,其他的像出参入参处理等逻辑都可以由默认的 resolver
处理。 如:
const localData = {
xxx
};
const transformer = new SchemaTransformer([...wedaJSONSchemas], {
getResolvers(opt) {
return {
getItem(value, { _id: _id }, context) {
return localData[_id];
}
};
},
fetchers: {
http: (url, init = {}, jsonschema) => {
init.headers = { ...init.headers, 'x-seqId': 'xxxxx' };
return fetch(url, init);
}
}
});