Как опустить объект, если одно из полей в объекте разрешено как нулевое с помощью fieldResolver

#typescript #graphql #typegraphql

Вопрос:

Преобразователь продуктов и преобразователь полей продуктов обеспечивает конечный результат (приведенный ниже). Но есть ли способ опустить объекты из конечного вывода, данные о продукте которых равны нулю.

 @Resolver((of) => Products)
export class ProductsResolver {

  @Query((returns) => [Products], {
    name: 'products',
  })
  getProducts() {
    returns products // returns object [{id: 1, id: 2}]
  }
}
 
 @Resolver((of) => Products)
export class ProductResolver implements ResolverInterface<Products> {
  @FieldResolver((returns) => ProductType, {
    nullable: false,
    name: 'productData',
  })
  async productData() {
    return object //first time it returns a proper object. 
                  // second time it returns null

  }
}
 
 @ObjectType()
export default class Products {
  @Field()
  id: string;
  @Field((type) => ProductType, { nullable: true })
  productData: ProductType;
  @Field((type) => Float, { nullable: true })
}
 

конечный результат

   "data": {
    "Products": [
      {
        "id": "1",
        "productData": { // inner object }
      },
      {
        "id": "2",
        "productData": null
      }
    ]
  }
 

желаемый результат

   "data": {
    "Products": [
      {
        "id": "1",
        "productData": { // inner object }
      }
  }
 

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

1. Извините, но я не совсем понимаю, чего вы хотите достичь… что такое ProductDataType и почему вы return [{},null] ?

2. извини за это. для каждого продукта fieldResolver для ProductData разрешает an object || null . И я получаю конечный результат (как упоминалось в вопросе). Но мне нужен желаемый результат (как указано в вопросе), который заключается в том, что я просто хочу удалить продукты, данные о продукте которых равны нулю, из конечного результата