Apollo-link-rest: 🐛 Запрос выдает ошибку, если значение параметра ложное (0, false, null, undefined)

Созданный на 26 февр. 2018  ·  4Комментарии  ·  Источник: apollographql/apollo-link-rest

Я получаю следующую ошибку при передаче значения 0 переменной.
Ошибка: сетевая ошибка: отсутствуют параметры для запуска запроса, укажите их в параметрах запроса или используйте директиву экспорта

Если вместо этого я использую строку, она работает.

Я отладил код и обнаружил проблему в функции replaceParam которая проверяет !value где (я полагаю 😃) следует проверять null / undefined values.

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

Я пришлю пиар

bug 🐛

Все 4 Комментарий

Хорошая уловка, машинописный способ для этого

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

Жду слияния вашего пиара! :)

Пожалуйста, добавьте модульный тест, чтобы мы могли уловить любые будущие регрессии.

Мне ясно, что 0 и false представляют реальные значения, а undefined - недостающее, но я не уверен в значениях null .
Как ты думаешь @fbartho?

@gaguirre Извините, я пропустил ваш ответ! Я отправил ваш код как есть. Я думаю, что нам, вероятно, следует поддержать передачу null внутрь и позволить другому слою заниматься этим.

Вы видели функцию pathBuilder ? Это предоставленный пользователем код, который может заботиться о различии между undefined и null или может фактически использовать null с пользой.

Как вы думаете, мы должны открыть новый билет для отслеживания этого дела?

@fbartho без проблем! Я согласен с тем, что null является допустимым случаем, и я учел это в PR.
Единственное, чего не хватало, - это тестовые примеры для случая undefined , но поведение, которое я считаю правильным: вызовет ошибку _Missing parameter_. 👍

Была ли эта страница полезной?
0 / 5 - 0 рейтинги