Severity: Unhandled promise rejection in `whitespace-async.js` when ESLint async path is used
@bodapatisaikrishna já está trabalhando nisso.
Desde 17/9/2026.
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
- eslint, javascript
- Domínio
- tooling
Direção de pesquisa
Comece na linha 49 de packages/eslint-config-airbnb-base/whitespace-async.js e packages/eslint-config-airbnb/whitespace-async.js e, em seguida, rastreie como whitespace.js invoca o script async com execSync. Verifique o caminho de rejeição e o comportamento da saída do processo filho. Está concluído quando as promises rejeitadas são tratadas, o erro é registrado e process.exitCode é definido como 1 para que o processo pai não receba um JSON enganoso.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
When the config is loaded on ESLint 9 (or when CLIEngine is unavailable), whitespace.js runs whitespace-async.js via execSync. That script calls onlyErrorOnRules(...).then(...) with no .catch(). If the promise rejects, the rejection is unhandled.
Impact
- Process can exit with an unhandled rejection.
- Child process may write errors (or non-JSON) to stdout, so the parent’s
JSON.parse(stdout)can throw and fail config loading with an unclear error.
Affected files
packages/eslint-config-airbnb-base/whitespace-async.js(line 49)packages/eslint-config-airbnb/whitespace-async.js(line 49)
Suggested fix
Add a .catch() that logs the error and sets process.exitCode = 1, so rejections are handled and the child exits with a non-zero code instead of leaving an unhandled rejection.
Screenshot
I'd love to have the chance to contribute to this.
- Linguagem predominante
- JavaScript
- Estrelas
- 148k
- Forks
- 26.5k
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
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 airbnb/javascript
-
Inconsistent semicolon usage in examples (Arrays vs Functions)Talvez já em andamento @Developer-shivamMishra assumiu há 17 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
airbnb/javascript#3152 · 4 comentários ·
-
No error handling around execSync + JSON.parse in whitespace.js (ESLint 9 path)Talvez já em andamento @dataCenter430 assumiu há 222 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 48/100
airbnb/javascript#3238 · 8 comentários ·
-
Upgrading eslint-plugin-react-hooksTalvez já em andamento @weihongyu12 assumiu há 367 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
airbnb/javascript#3186 · 3 comentários · 2 reações ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
airbnb/javascript#3173 · 9 comentários · 1 reação ·
-
Isn't section 5.1 "Use object destructuring" conflicting with 3.3 "Use object method shorthand" ?Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
airbnb/javascript#3136 · 11 comentários ·
Todas as issues de airbnb/javascript
Issues semelhantes
-
Access-request approve silently discards the decider's note (decision_note written only on deny)Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Uuriko/project-room#3378 ·
Mantenedores costumam responder em até 1 dia
-
Notifications pagination accepts NaN and negative LIMIT/OFFSETTalvez já em andamento @Senthil455 assumiu hoje. AbertaBUGS MEDIUM
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
elixpo/blogs.elixpo#419 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
immich-app/immich#32426 ·
Mantenedores costumam responder em até 1 dia