Как избежать возврата » нулевых` значений с помощью Apollo GraphQL?

#node.js #graphql #apollo

Вопрос:

Предположим, у меня есть следующий запрос на моем интерфейсе React:

 query {  getResponse {  someFieldA  someFieldB  } }  

И мой сервер express-graphql определяет ответ на этот запрос как:

 const GetResponseType = new GraphQLObjectType({  name: 'GetResponseType',  fields: () =gt; ({  someFieldA: { type: GraphQLBoolean },  someFieldB: { type: GraphQLBoolean },  }) })  

Теперь предположим, что мои службы GraphQL определяют getResponse следующее:

 . . .  getResponse: {  type: GetResponseType,  resolve: () =gt; {  return {  someFieldA: true  }  }  } . . .  

Ответ на этот запрос вернет следующее:

 {  data: {  getResponse: {  someFieldA: true,  someFieldB: null,  }  } }  

Как я могу избежать someFieldB здесь значения null, если оно не возвращается getResponse ?

Если это имеет значение, я пытаюсь реализовать переключатель функций, который возвращает объект пары ключ-значение, где ключ является определенной функцией, а значение всегда true . Если определенная функция есть undefined , то она отключена. По отдельным причинам я не могу вернуться false к функциям, которые отключены.

Что я могу здесь сделать? Ожидаемый ответ на этот запрос будет следующим:

 {  data: {  getResponse: {  someFieldA: true,  }  } }  

Комментарии:

1. все запрошенные/запрошенные поля ДОЛЖНЫ быть возвращены … не возвращено [распознавателями] и nullable возвращаются как null , поскольку должна быть выдана ошибка not nullable — требования к спецификациям GraphQL … по некоторым «отдельным причинам» [если ложь не возвращена] вы ДОЛЖНЫ принять null s в ответе =gt; обработайте их как gt; false на FE