core throws a TypeError when index.json has a version semver can't read

Abierto Apto para principiantes
#154 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, node.js
Área
api, backend

Línea de trabajo

Empieza en core/index.js alrededor de las líneas 131–139, donde se convierte la versión y se lee su propiedad major; después revisa core/test/errors.js y la reproducción con fixture-server del issue. Haz que las versiones malformadas, como null, se rechacen con un error que indique la versión y la URL de index, y actualiza las pruebas para verificar ese mensaje.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

When index.json has a version that semver.coerce can't read (null, a string with no digits, an object), core rejects with TypeError: Cannot read properties of null (reading 'major') from core/index.js#L139. The comment above it at L131 assumes every version parses, so nothing checks for null.

The error doesn't say which entry or which URL was the problem, and core/test/errors.js only checks that core rejects, so the TypeError passes it.

Repro, with the fixture server:

const nodevu = require('@nodevu/core');
const { at } = require('@nodevu/fixtures');

await nodevu(at('2024-01-01', {
  index: [{ version: null, date: '2024-01-01', files: ['src'] }],
  schedule: {},
}));
// TypeError: Cannot read properties of null (reading 'major')

fast-check finds it in its first run, shrunk to version: null in an otherwise empty index.

core should reject with an error that names the version and the index URL instead.

Found while working on #153.

Lenguaje dominante
JavaScript
Estrellas
15
Forks
2
Merge medio
1 d 1 h
PR fusionados (30 d)
60

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cutenode/nodevu

Todos los issues de cutenode/nodevu

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.