如何使用从Apollo的graphql-gql中的npm包导入的自定义graphQL类型

时间:2018-10-30 08:08:38

标签: graphql apollo-server graphql-tag

我不想编写自己的自定义标量类型,我想从库中导入它们。 例如,我想要this npm package - gnt

中的UnixTimestamp

在我的typeDefs.js中,我尝试类似的操作

import { gql } from 'apollo-server-express'
import { UnixDate } from 'gnt'

export default gql`
type vacation {
  from: ${UnixDate}
  to: ${UnixDate}
}
/* other types and queries */
`

但是它不起作用。我得到Error: Type "UnixDate" not found in document.

1 个答案:

答案 0 :(得分:1)

以这种方式向字段添加UnixDate会将标量分配给该特定字段,并告诉GraphQL如何处理对其进行解析,但是不会将标量显式添加到架构本身。您仍然需要将标量添加到typeDefs中,如下所示:

export default gql`
  scalar ${UnixDate} /* use template literal placeholder */

  type vacation {
    from: ${UnixDate}
    to: ${UnixDate}
  }
  # Other typeDefs
`