我希望编写一个像Object.assign
或_.merge
这样的函数,但它可以在GraphQLSchema
个对象上运行。
假设我有两个GraphQLSchema
实例,称之为Base和Other,我想将Other合并到Base中以生成一个新的实例Result
GraphQLFieldConfig
GraphQLFieldConfig
。看起来好像没有记录的方法来做到这一点。那是对的吗?如果我去了(相当危险的)未记录的路线,我注意到我可以利用该对象的内部属性:
任何建议都将不胜感激。提前谢谢!
答案 0 :(得分:1)
请检查图书馆merge-graphql-schemas。我想这可能会对你有帮助
答案 1 :(得分:0)
这是我的解决方案:
const { mergeTypes } = require('merge-graphql-schemas');
const { printSchema, parse } = require('graphql');
const typeArray = graphqlSchemas.map(printSchema);
const schema = mergeTypes(typeArray, { all: true });
try {
parse(schema);
} catch (err) {
console.log(err);
}
graphqlSchemas
是GraphQLSchema
类型。就我而言,它是数组。
printSchema
将GraphQLSchema
转换为字符串模板架构。
mergeTypes
将所有字符串模板架构合并为一个。
为安全起见,请使用try/catch
验证架构是否有效。
答案 2 :(得分:0)
使用“ graphql-tools”中的mergeSchemas,您可以合并GraphQLSchema对象
https://www.apollographql.com/docs/graphql-tools/schema-stitching.html#mergeSchemas
import { mergeSchemas } from 'graphql-tools';
const schema = mergeSchemas({
schemas: [
chirpSchema,
authorSchema,
],
});