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 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}`