fix(json-schema-2020-12): fix rendering of exclusiveMin|Max keywords (#9030)

Refs #9013
This commit is contained in:
Vladimír Gorej
2023-07-17 14:52:48 +02:00
committed by GitHub
parent b0d937e2a9
commit 70d7986ad0

View File

@@ -231,22 +231,25 @@ const stringifyConstraintNumberRange = (schema) => {
const hasMaximum = typeof maximum === "number" const hasMaximum = typeof maximum === "number"
const hasExclusiveMinimum = typeof exclusiveMinimum === "number" const hasExclusiveMinimum = typeof exclusiveMinimum === "number"
const hasExclusiveMaximum = typeof exclusiveMaximum === "number" const hasExclusiveMaximum = typeof exclusiveMaximum === "number"
const isMinExclusive = hasExclusiveMinimum && minimum < exclusiveMinimum const isMinExclusive = hasExclusiveMinimum && (!hasMinimum || minimum < exclusiveMinimum) // prettier-ignore
const isMaxExclusive = hasExclusiveMaximum && maximum > exclusiveMaximum const isMaxExclusive = hasExclusiveMaximum && (!hasMaximum || maximum > exclusiveMaximum) // prettier-ignore
if (hasMinimum && hasMaximum) { if (
(hasMinimum || hasExclusiveMinimum) &&
(hasMaximum || hasExclusiveMaximum)
) {
const minSymbol = isMinExclusive ? "(" : "[" const minSymbol = isMinExclusive ? "(" : "["
const maxSymbol = isMaxExclusive ? ")" : "]" const maxSymbol = isMaxExclusive ? ")" : "]"
const minValue = isMinExclusive ? exclusiveMinimum : minimum const minValue = isMinExclusive ? exclusiveMinimum : minimum
const maxValue = isMaxExclusive ? exclusiveMaximum : maximum const maxValue = isMaxExclusive ? exclusiveMaximum : maximum
return `${minSymbol}${minValue}, ${maxValue}${maxSymbol}` return `${minSymbol}${minValue}, ${maxValue}${maxSymbol}`
} }
if (hasMinimum) { if (hasMinimum || hasExclusiveMinimum) {
const minSymbol = isMinExclusive ? ">" : "≥" const minSymbol = isMinExclusive ? ">" : "≥"
const minValue = isMinExclusive ? exclusiveMinimum : minimum const minValue = isMinExclusive ? exclusiveMinimum : minimum
return `${minSymbol} ${minValue}` return `${minSymbol} ${minValue}`
} }
if (hasMaximum) { if (hasMaximum || hasExclusiveMaximum) {
const maxSymbol = isMaxExclusive ? "<" : "≤" const maxSymbol = isMaxExclusive ? "<" : "≤"
const maxValue = isMaxExclusive ? exclusiveMaximum : maximum const maxValue = isMaxExclusive ? exclusiveMaximum : maximum
return `${maxSymbol} ${maxValue}` return `${maxSymbol} ${maxValue}`