Thief of Wealth

Mutation 문구가 중복되었을떄 발생한다.

 

1. 1개의 파일에 Query, Mutation 문구가 있는경우

 

Post.js

 

Post {

    ....

}

 

extend type Query {

    ....

}

 

extend type Mutation {

    ....

}

 

extend 문구를 사용해서 파일별로 Mutation, Query를 여러번 선언할 수 있다.

 

 

2. Mutation, Query 파일 따로만들기

 

Mutation.js

 

type Mutation {

    addPost():Boolean!

    addUser():Boolean!

    ....

}

 

이렇게 1개의 Mutation 문구에 여러개 타입의 함수들을 선언할 수도 있다.

 

 

 

3. 여러개 타입을 여러개 Mutation, Query에 선언

 

이 경우는 1개의 Mutation, Query 문구로 합쳐주는 모듈을 사용하면 된다.

 

예제코드는 아래와 같다.

 

import path from "path";

import { makeExecutableSchema } from "graphql-tools";

import { fileLoader, mergeResolvers, mergeTypes } from "merge-graphql-schemas";

 

const allTypes = fileLoader( path.join(__dirname, "/api/**/*.graphql") );

const allResolvers = fileLoader( path.join(__dirname, "/api/**/*.js") );

 

const schema = makeExecutableSchema({

typeDefs: mergeTypes(allTypes),

resolvers: mergeResolvers(allResolvers)

});

 

export default schema;

 

 

여기서 주의할점은

자동 import기능을 맹신하다가 graphql tools에서 mergeTypes가 아닌 mergeType을 가져오면 낭패가 일어난다. 주의하자!

import { makeExecutableSchema, mergeType, mergeResolvers } from "graphql-tools";

import {fileloader} from "merge-graphql-schemas";

profile on loading

Loading...