Tengo un esquema para validar con Ajv en Node.js. Hay un patrón recurrente sobre las propiedades del json a convalidar, los posibles valores de las claves son 1,2,3,4,5. La pregunta es, ¿es posible con una expresión regular expresar solo una propiedad que explicará a ajv que el valor de las claves del objeto json podría ser un número entero entre uno y cinco? Y si es así, ¿cómo?
A continuación se muestra un ejemplo del código actual.
const Ajv = require("ajv") const ajv = new Ajv() const validate_setparameters = ajv.compile( { type: "object", properties: { "1": { type: "integer"}, "2": { type: "integer"}, "3": { type: "integer"}, "4": { type: "integer"}, "5": { type: "integer"} }, additionalProperties: false, minProperties: 1 } ) console.log(validate_setparameters({"3":1}))Véalo: https://ajv.js.org/json-schema.html#patternproperties
Entonces su código se verá así:
const Ajv = require("ajv") const ajv = new Ajv() const validate_setparameters = ajv.compile( { type: "object", patternProperties: { "^[1-5]{1}$": { type: "integer"} }, additionalProperties: false, minProperties: 1 } ) console.log(validate_setparameters({"3":1}))