core throws a TypeError when index.json has a version semver can't read
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- javascript, node.js
Direção de pesquisa
Comece em core/index.js, por volta das linhas 131–139, onde a versão é convertida e sua propriedade major é lida; em seguida, examine core/test/errors.js e a reprodução com fixture-server na issue. Faça com que versões malformadas, como null, sejam rejeitadas com um erro que indique a versão e a URL de index, e atualize os testes para verificar essa mensagem.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- JavaScript
- Estrelas
- 15
- Forks
- 2
- Merge médio
- 1d 1h
- PRs com merge (30d)
- 60
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de cutenode/nodevu
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
fix missing 'v's in a few spots.Talvez livre de novo @hemnath-hub assumiu há 52 dias e não há nenhum pull request aberto. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
cutenode/nodevu#28 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
fix missing EOL markersTalvez livre de novo @hemnath-hub assumiu há 52 dias e não há nenhum pull request aberto. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 45/100
cutenode/nodevu#25 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
feat: filtered coreTalvez livre de novo @hemnath-hub assumiu há 52 dias e não há nenhum pull request aberto. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
cutenode/nodevu#5 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de cutenode/nodevu
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
ImpactMojo/ImpactMojo#1385 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Seeed-Studio/wiki-documents#5974 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
taskcluster/taskcluster#9486 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia