.agent/global/rules/typescript-module-resolution.md
2026-09-28 22:18:39 -03:00

1.7 KiB

type name description scope trigger globs priority updatedAt
rule typescript-module-resolution Padrão obrigatório de moduleResolution para todos os pacotes do monorepo Azteca global glob **/tsconfig*.json alta 2026-09-28

Regra: moduleResolution Padrão do Monorepo

Contexto

O TypeScript 6.0 deprecia moduleResolution: "node" (alias de "node10"), que deixará de funcionar no TS 7.0 (erro TS5107). Todos os pacotes do ecossistema Azteca compilam via tsup ou vite, portanto devem usar o modo bundler.

Regra

Todo tsconfig.json no monorepo DEVE usar:

{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "module": "ESNext"
  }
}

Alternativa node16 — REJEITADA

A opção node16 foi testada e rejeitada por ser excessivamente estrita com dependências externas que não declaram corretamente as fronteiras ESM/CJS (erro TS1479).

Exemplos

// ✅ Correto — modo bundler
{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "module": "ESNext"
  }
}

// ❌ Incorreto — modo depreciado
{
  "compilerOptions": {
    "moduleResolution": "node"
  }
}

// ❌ Incorreto — estrito demais para o ecossistema
{
  "compilerOptions": {
    "moduleResolution": "node16",
    "module": "Node16"
  }
}

Procedimento ao corrigir

Ao corrigir moduleResolution em um pacote, varrer todos os tsconfig.json do monorepo para garantir consistência. Não corrigir isoladamente.

Impacto

Sem este padrão, o build falhará no TypeScript 7.0 com erro fatal TS5107. Já no TS 6.0 gera warnings de depreciação que poluem o output.

Referências

  • Memória Azteca: códigos 51, 52, 54
  • Rule: global/rules/tsconfig-ignore-deprecations