不允许在 GraphQL Schema 中使用空字符串

Do not allow empty strings in GraphQL Schema

我们有一个字段需要类型为 String! 的不可为 null 的字符串,但是如果它是空字符串或只有空格的字符串,Apollo 将排除该字段。

我们已经尝试使用标量类型 NonEmptyString 但是没有成功。

有没有办法将非空字符串类型添加到我们的 Apollo Server graphql 架构中?

谢谢

您好,这应该可以使用自定义标量

export const NonEmptyString = new GraphQLScalarType({
  name: 'NonEmptyString',
  description: 'Non empty string',
  serialize: (value: unknown): string => {
    if (typeof value !== 'string' || value === '') { // or any custom validation
      throw new Error('Wrong value type');
    }

    return value
  },
  parseValue: (value: unknown): string => {
    if (typeof value !== 'string' || value === '') {
      throw new Error('Wrong value type');
    }

    return value
  },
});