Apollo-link-rest: 🐛 A consulta gera um erro quando o valor do parâmetro é falso (0, falso, nulo, indefinido)

Criado em 26 fev. 2018  ·  4Comentários  ·  Fonte: apollographql/apollo-link-rest

Estou recebendo o seguinte erro ao passar um 0 em uma variável.
Erro: erro de rede: parâmetros ausentes para executar a consulta, especifique-o nos parâmetros da consulta ou use uma diretiva de exportação

Se, em vez disso, eu usar uma corda, funciona

Eu depurei o código e encontrei o problema na função replaceParam que está verificando !value onde (eu acho 😃) deveria estar verificando null / undefined valores.

var replaceParam = function (endpoint, name, value) {
    if (!value || !name) {
        return endpoint;
    }
    return endpoint.replace(":" + name, value);
};

Vou enviar um PR

bug 🐛

Todos 4 comentários

Boa pegada, a maneira datilografada para isso é

if (value != null || name != null)

Estou ansioso para fundir seu PR! :)

Adicione um teste de unidade para que possamos capturar quaisquer regressões futuras.

Está claro para mim que 0 e false representam valores reais e undefined faltam, mas não tenho certeza sobre null valores.
O que você acha @fbartho?

@gaguirre Desculpe ter perdido sua resposta! Enviei seu código como está. Acho que provavelmente deveríamos apoiar a transferência de null e deixar uma camada diferente lidar com isso.

Você já viu a função pathBuilder ? Esse é o código fornecido pelo usuário que poderia se preocupar com a distinção entre undefined e null , ou poderia realmente usar null forma útil.

Você acha que devemos abrir um novo tíquete para rastrear esse caso?

@fbartho não tem problema! Eu concordo que null é um caso válido e eu considerei isso no PR.
A única coisa que faltava eram os casos de teste para o caso undefined , mas o comportamento eu acho que é o correto: vai lançar um erro _Parâmetro ausente_. 👍

Esta página foi útil?
0 / 5 - 0 avaliações