Я не понимаю, почему yup вообще выбрасывает зависимость cycli c. Когда мы ссылаемся на другие поля, мы ссылаемся на значение, а не на саму схему, не так ли?
Больше, чем просто то, чего я не получаю, я обнаружил, что заблокирован, требуя условной проверки схемы.
const yup = require("yup");
it("should pass", async () => {
const schema = yup.object({
name: yup.string().when("name", {
is: name => name !== "dummy",
otherwise: yup.string().email("Email or dummy.")
})
});
const obj = {
name: "dummy"
};
await expect(schema.isValid(obj)).resolves.toBe(true);
});
codesandbox
Кроме того, нет ничего похожего на or
или either
в DSL?
Вопрос действительно о том, почему yup выбрасывает циклическую c зависимость, не об этом конкретном c случае.