Executando verificação de segurança...
2

Implementei análise cross-file em um linter JS — e isso revelou coisas que nenhum linter tradicional enxerga

Nos últimos dias finalizei algo que sempre fez falta nos linters do ecossistema JavaScript/TypeScript: análise cross-file de verdade.

O projeto é o Perf-Fiscal, um linter focado exclusivamente em performance.
A motivação é simples: muitos problemas de performance não aparecem dentro de um único arquivo.

Eles nascem da relação entre vários arquivos.
O problema é que praticamente todos os linters modernos funcionam file-by-file.
Isso significa que eles nunca vão detectar padrões como:

  • funções instáveis exportadas sem intenção
  • props que mudam silenciosamente em outro módulo
  • valores mutáveis viajando pela árvore inteira
  • re-renders em cadeia que começam distante do componente afetado
  • comportamentos emergentes que só existem quando você junta várias partes
    Esses casos acontecem o tempo todo em projetos React + TypeScript — e passam batido pelas ferramentas atuais.

🔍 O que o Perf-Fiscal faz agora

Com a análise cross-file implementada, ele monta um graph real do projeto, correlacionando:

  • definições e usos
  • símbolos do TypeScript
  • export/import
  • reconstruções de funções
  • estabilidade de valores
  • caminhos completos de propagação
    Isso permite detectar situações que nenhum linter tradicional identifica.
    Exemplo já funcional:

“Um componente memoizado recebendo uma função instável que foi criada em outro arquivo, exportada e repassada.”
Para um linter comum, isso é invisível.
Para o Perf-Fiscal, é apenas mais uma conexão no graph.

🧠 Por que isso importa

Performance não é um problema local — ela é sistêmica.
Se você só analisa um arquivo por vez, você só enxerga sintomas.
Com análise cross-file, dá para encontrar a origem dos padrões que degradam uma aplicação.
Na prática, o Perf-Fiscal consegue:

  • entender relações reais entre módulos
  • rastrear instabilidade em cadeia
  • mostrar onde um valor muda e por quê
  • identificar “pontos quentes” de re-render
  • explicar problemas que só aparecem quando o app já está pesado
    É um tipo de diagnóstico que as ferramentas atuais simplesmente não alcançam.

🧭 Status do projeto

A análise cross-file já está ativa e sendo expandida.
Cada teste revela padrões que linters file-by-file jamais detectariam.
Os próximos passos incluem:

  • regras baseadas no graph
  • análise de estabilidade mais profunda
  • relatórios de cadeia de uso
  • evolução além do modelo clássico de “plugin de ESLint”
    O objetivo é tratar performance de forma mais séria e completa.

🔗 Código aberto

Quem quiser acompanhar o desenvolvimento e testar:
https://github.com/ruidosujeira/perf-fiscal
Feedback é bem-vindo.

Carregando publicação patrocinada...