From 5df8f20c03884fb63e03450de9b2ce1ba497b928 Mon Sep 17 00:00:00 2001 From: hackerman <3372410+aeneasr@users.noreply.github.com> Date: Wed, 23 Oct 2019 15:12:18 +0200 Subject: [PATCH] Resolve issue with required field in oneOf (#534) Having a schema that has a oneOf definition as such: ``` { "oneOf": [ { required: ["foo"], /*...*/ }, { /*...*/ }, ] } ``` causes the changed line to fail with error message `calling includes on undefined`. This does not always happen, as it appears that the "oneOf" field is being picked by random. This patch simply uses a default empty array if `fixed.required` is undefined, resolving this issue. --- src/core/run.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/run.js b/src/core/run.js index 23ac43e8..4744b6ae 100644 --- a/src/core/run.js +++ b/src/core/run.js @@ -169,7 +169,7 @@ function run(refs, schema, container) { if (sub.oneOf) { mix.forEach(omit => { if (omit !== fixed && omit.required) { - omit.required.filter(required => !fixed.required.includes(required)).forEach(function (key) { + omit.required.filter(required => !(fixed.required || []).includes(required)).forEach(function (key) { delete copy.properties[key]; }); } -- GitLab