--- type: rule name: typescript-module-resolution description: Padrão obrigatório de moduleResolution para todos os pacotes do monorepo Azteca scope: global trigger: glob globs: "**/tsconfig*.json" priority: alta updatedAt: "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: ```json { "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 ```json // ✅ 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`