使用特殊案例解析器包装GraphQL标量类型

时间:2017-08-09 15:17:49

标签: javascript graphql graphql-js

我有library to represent DateTime个对象的特殊GraphQL标量类型。但是,我有一个案例,值为00:00:00'从MySQL返回,表示它无法解析。我基本上想要将其解决到null

在我的架构中,我总是可以使用与之类似的自定义解析器:

import gqlDate from 'graphql-iso-date';

const MyType = new gql.GraphQLObjectType({
  name: 'Type',
  description: 'This is a GraphQL type.',
  fields: () => {
    return {
      datetime: {
        type: gqlDate.GraphQLDateTime,
        description: 'The datetime field of my type.',
        resolve: (record) => {
          return record === '0000-00-00 00:00:00' ? null : record;
        }
      }
    };
  }
});

但我希望有一种方法可以将其包装成类似于以下内容的类型:

const CustomDateTimeType = new gql.GraphQLType({
    name: 'CustomDateTime',
    type: gqlDate.DateTimeType,
    resolve: (record) => {
      return record === '0000-00-00 00:00:00' ? null : record;
    }
});

我能想到的另一种方式是使用UnionType,但这看起来很火爆。

0 个答案:

没有答案