Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

291
Views
Una advertencia de modo estricto de ajv cuando se usa la tienda de electrones

Quiero guardar un object[] usando electron-store con JSON Schema , después de leer el documento de JSON Schema , obtengo el código que se puede ejecutar con éxito pero con una advertencia:

 strict mode: "items" is 1-tuple, but minItems or maxItems/additionalItems are not specified or different at path "#/properties/todo"

Y mi código es:

 const Store = require('electron-store') /** @type import('json-schema-typed').JSONSchema */ const schema = { todo: { type: 'array', items: [true], minItems: 0, maxItems: 999, additionalItems: { type: 'object', properties: { id: { type: 'number' }, name: { type: 'string' } } } } } const todoStore = new Store({ schema }) const todoItem = [{ id: 1, name: '11111' }] todoStore.set('todo', todoItem) console.log(todoStore.get('todo')) const newTodo = [...todoStore.get('todo')] newTodo.push({ id: 2, name: '22222' }) todoStore.set('todo', prev) console.log(todoStore.get('todo')) module.exports = todoStore

agrego minItems y maxItems , pero la advertencia sigue apareciendo. Lo compruebo durante unas horas, pero no puedo trabajar. ¿Alguien puede ayudarme?

Por cierto, quiero preguntar si uso JSON Schema de la manera correcta.

Puede instalar electron-store y ejecutarlo directamente con node ./xxx.js

Gracias por ayudarme.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No hay nada malo con tu esquema.

AJV versión 8 introdujo el "modo estricto" que está activado de forma predeterminada. Su objetivo es evitar cometer errores al escribir esquemas.

Uno de los valores predeterminados es evitar elementos sin restricciones cuando se utilizan items en forma de tupla.

Ajv también registra una advertencia si "items" es una matriz (para el esquema que define una tupla) pero no están presentes las palabras clave "minItems" ni "additionalItems"/"maxItems" (o tienen un valor incorrecto):

https://ajv.js.org/strict-mode.html#unconstrained-tuplas

Yo argumentaría que, aunque no haya configurado los elementos additionalItems en falso, aún ha restringido todos los valores cuando configuró maxItems .

Plantearé un problema en su nombre y lo vincularé en los comentarios.

Hasta que se solucione (si se soluciona), puede deshabilitar este elemento de modo estricto usando una configuración cuando inicializa AJV ( https://ajv.js.org/options.html#stricttuples )

 const ajv = new Ajv({ strictTuples: false });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!