async-guard é uma ferramenta de análise estática de código focada em detectar usos inseguros de Promise
, await
e async
functions que podem causar comportamentos imprevisíveis em produção — especialmente em aplicações que utilizam AdonisJS (v4), Express ou qualquer framework assíncrono.
🚨 Detecta situações onde
await
não está protegido portry/catch
, promessas rejeitadas sem.catch()
e funções assíncronas propensas a falhar silenciosamente.
No Node.js, promessas rejeitadas sem tratamento podem:
- Causar erros silenciosos que explodem somente em produção
- Gerar warnings no AdonisJS (v4) e outros frameworks
- Encerrar a aplicação com
unhandledRejection
se não forem tratadas
Essa ferramenta automatiza a verificação desses riscos antes que causem problemas reais.
await
fora detry/catch
.then()
sem.catch()
new Promise()
sem tratamento- Funções
async
sem blocotry/catch
interno - Gera relatório detalhado por arquivo com localização e snippet de código
- Instale as dependências:
npm install
- Execute o check.js sob o projeto:
node src/check.js /path/relativo/ou/absoluto
-
Utiliza
babel
para gerar e percorrer a AST dos arquivos.js
. -
Escaneia recursivamente os arquivos da pasta
-
Identifica padrões de uso perigoso de promessas
Quer contribuir? Toda ajuda é bem-vinda! Aqui estão algumas ideias:
-
Exporta um relatório legível para auditoria ou CI/CD
-
Adicionar suporte a TypeScript com tipos
-
Permitir configuração via CLI (ex: --json, --output, --ci)
-
Geração de relatórios em HTML ou JSON
-
Sugestões automáticas de fix com lint-style
git clone https://github.com/pedro2s/async-guard.git
cd async-guard
npm install
Crie sua branch:
git checkout -b minha-feature
Envie um PR!💥
.
├──src
├── check.js # Arquivo que inicia o scan
├── analyzer.js # Analisador estático baseado em AST
└── README.md # Este arquivo