From 7c9fe2c6cf52e61620ff36853fa0dee1b93594f5 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Sun, 2 Feb 2020 10:17:16 -0500 Subject: Fix conditional logic --- ext/bg/js/json-schema.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ext/bg/js/json-schema.js b/ext/bg/js/json-schema.js index 65fbce41..97429211 100644 --- a/ext/bg/js/json-schema.js +++ b/ext/bg/js/json-schema.js @@ -199,17 +199,19 @@ class JsonSchemaProxyHandler { } static validateConditional(value, schema) { - const ifCondition = schema.if; - if (!JsonSchemaProxyHandler.isObject(ifCondition)) { return; } + const ifSchema = schema.if; + if (!JsonSchemaProxyHandler.isObject(ifSchema)) { return; } - const thenSchema = schema.then; - if (JsonSchemaProxyHandler.isObject(thenSchema)) { + let okay = true; + try { JsonSchemaProxyHandler.validate(value, thenSchema); + } catch (e) { + okay = false; } - const elseSchema = schema.else; - if (JsonSchemaProxyHandler.isObject(elseSchema)) { - JsonSchemaProxyHandler.validate(value, thenSchema); + const nextSchema = okay ? schema.then : schema.else; + if (JsonSchemaProxyHandler.isObject(nextSchema)) { + JsonSchemaProxyHandler.validate(value, nextSchema); } } -- cgit v1.2.3