1

我正在使用 nexus.js 来构建 GraphQL 架构。要定义一个类型,我们使用ObjectDefinitionBlock. 我将对象类型定义如下:

export const Choice = objectType({
  name: 'Choice',
  definition(t) {
    t.id('id', { resolve: (x) => x.id.toString() });
    t.string('value');
    t.int('order');
  }
});

t是一个ObjectDefinitionBlock允许定义对象字段的方法。x.id是一种类型,bigint并被序列化为内置的 GraphQL 标量类型 - ID。因为,我使用bigint我所有的数据库 ID,所以我必须始终添加一个解析器来转换bigintstring. 我想扩充它t,以便我可以写:

t.bigId('id');

请注意,我不想定义新的 scalar。只需要在标量上编写一个外观,ID以避免为resolve函数编写重复定义。有什么办法可以做到这一点?

4

0 回答 0