From 70d7986ad045170c6590e4e17eaaee43a3b34eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Gorej?= Date: Mon, 17 Jul 2023 14:52:48 +0200 Subject: [PATCH] fix(json-schema-2020-12): fix rendering of exclusiveMin|Max keywords (#9030) Refs #9013 --- src/core/plugins/json-schema-2020-12/fn.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/core/plugins/json-schema-2020-12/fn.js b/src/core/plugins/json-schema-2020-12/fn.js index caf5fef1..8337cec4 100644 --- a/src/core/plugins/json-schema-2020-12/fn.js +++ b/src/core/plugins/json-schema-2020-12/fn.js @@ -231,22 +231,25 @@ const stringifyConstraintNumberRange = (schema) => { const hasMaximum = typeof maximum === "number" const hasExclusiveMinimum = typeof exclusiveMinimum === "number" const hasExclusiveMaximum = typeof exclusiveMaximum === "number" - const isMinExclusive = hasExclusiveMinimum && minimum < exclusiveMinimum - const isMaxExclusive = hasExclusiveMaximum && maximum > exclusiveMaximum + const isMinExclusive = hasExclusiveMinimum && (!hasMinimum || minimum < exclusiveMinimum) // prettier-ignore + const isMaxExclusive = hasExclusiveMaximum && (!hasMaximum || maximum > exclusiveMaximum) // prettier-ignore - if (hasMinimum && hasMaximum) { + if ( + (hasMinimum || hasExclusiveMinimum) && + (hasMaximum || hasExclusiveMaximum) + ) { const minSymbol = isMinExclusive ? "(" : "[" const maxSymbol = isMaxExclusive ? ")" : "]" const minValue = isMinExclusive ? exclusiveMinimum : minimum const maxValue = isMaxExclusive ? exclusiveMaximum : maximum return `${minSymbol}${minValue}, ${maxValue}${maxSymbol}` } - if (hasMinimum) { + if (hasMinimum || hasExclusiveMinimum) { const minSymbol = isMinExclusive ? ">" : "≥" const minValue = isMinExclusive ? exclusiveMinimum : minimum return `${minSymbol} ${minValue}` } - if (hasMaximum) { + if (hasMaximum || hasExclusiveMaximum) { const maxSymbol = isMaxExclusive ? "<" : "≤" const maxValue = isMaxExclusive ? exclusiveMaximum : maximum return `${maxSymbol} ${maxValue}`