如何从GraphQLSchema javascript对象获取.graphql文件?

时间:2017-12-10 21:10:02

标签: javascript graphql relayjs graphql-js

我正在使用graphql-js创建一个新的graphQL架构,但不会通过http提供服务,它将用作本地graphql服务。我需要以json格式获取此graphql的模式,以将其与另一个模式合并。我一直在使用get-graphql-schema从服务器获取模式,但在我的情况下这不会起作用。

我想要的是从make GraphQLSchema之后获得的new GraphQLSchema({ query, mutation });对象中获取带有模式的json

我确信这很简单,但我有点卡住了。谢谢!

2 个答案:

答案 0 :(得分:1)

由于您需要本地创建的GraphQLSchema对象的.graphql文件,您只需使用printSchema进行打印然后将其写入文件

import { printSchema } from 'graphql';
import Query from './Query';
import fs from 'fs';

const schema = new GraphQLSchema({
  query: Query
});

const fileData = printSchema(schema);

fs.writeFile('/path/to/schema.graphql', fileData, error => {
  // handle error
});

get-graphql-schema包只能与graphql-server端点一起使用。该包首先发送内省查询以获取JSON表示,然后使用graphql-js重构客户端(非可执行)模式  buildClientSchema然后使用printSchema最终输出可以放在.graphql文件中的模式语言表示。由于您已在本地拥有GraphQLSchema对象,因此您可以跳过前两个步骤并打印架构。

答案 1 :(得分:0)

您可以在localhost graphql server上使用get-graphql-schema