GraphQL with Ts - custom interface

jhj46456·2020년 4월 30일
0

Ts-Node

목록 보기
2/2

❗❗ graphql-yoga를 사용하였음

Problem

GraphQLServer를 구축하는 경우 두 가지 경우로 Resolver를 작성합니다.

  1. typeDef 따로, resolvers 따로
  2. graphql-tools를 이용한 schema merge

일단 Resolver를 검색했을 때 보이는 것들 입니다.

다음은 IResolver를 검색했을 때 보이는 것들입니다.

우리는 graphql-tools를 이용하여 합치기 때문에 resolver는 다음의 형태를 가집니다.

export default {
  [type] : {
    [resolver] : (root, args, context, info) => any  
  }
}

Typing이 되어있지 않은 resolver는 각각의 인자에서 any라고 불평합니다.

문제는 이런 형태를 정의 해놓은 인터페이스가 없습니다.

물론 root, args, context가 any로 설정된 것이 있긴 하지만 단일 Object 인터페이스입니다.

Solution

모듈을 재활용 하기위해 다음과 같이 만들어 보았습니다.

root를 사용해야 하는 경우

아무것도 사용하지 않는 경우

args만 사용하는 경우

Conclusion

Apollo로 상태관리를 할 때도 같은 개념으로 활용이 가능합니다.

profile
리액뚜

0개의 댓글