- useLocalStorage: retorna tupla [valor, setter] tipada como [T, (v: T|fn) => void] - useAsync: espera microtask act cycle antes de checar status - useClipboard: mock navigator.clipboard.writeText antes - useMedia: mock matchMedia antes - Busca por padrão: act() + waitFor p/ efeitos assíncronos (sem fakeTimers gerais) - docs: PROJECTS-REGISTER, SESSION-STATE (pretérito + presente)
1.9 KiB
Errors — Falhas para evitar
Registro de erros, exceções e falhas com contexto de reprodução.
[ERR-20260519-002] tsup-flat-infinity-breaks-dts
Logged: 2026-05-19T21:35:00-03:00 Severity: high Area: config | build
What happened
cn() usava flat(Infinity) no array de classes. O gerador de DTS do tsup v8 quebra com tipos recursivos infinitos, lançando Type instantiation is excessively deep.
Error message
src/utils/index.ts: error TS2589: Type instantiation is excessively deep and possibly infinite.
DTS Build error
Reproduction
type ClassValue = string | false | null | undefined | ClassValue[];
// ❌ flat(Infinity) → tipo recursivo infinito → DTS quebra
export function cn(...inputs: ClassValue[]): string {
return inputs.flat(Infinity)....
}
Fix
type ClassValue = string | boolean | null | undefined | Array<ClassValue>;
// ✅ flat(2) — máximo de aninhamento é 2 níveis (cls, [cls2])
export function cn(...inputs: ClassValue[]): string {
return inputs.flat(2)....
}
Also fixed in same session
process.env.NODE_ENVno código → quebra SSR / bundler. Solução: guardatypeof localStorage !== 'undefined'documentoSchemausava.replace()direto na string Zod →.transform(v => v.replace(…))
ERR-20260519-002
Data: 2026-05-19T21:35:00-03:00 Severidade: medium Status: resolved
Problema
Template strings com backticks aninhadas em docker/dockerfile.ts quebraram compilação TypeScript.
Resolução
Reescrever com template literals simples sem aninhamento: concatenar strings ou usar .replace() fora do template.
Lição
Template strings aninhadas (backticks dentro de backticks) podem quebrar sintaxe TS. Usar fn().replace(...) quando precisar de conteúdo dinâmico dentro de strings já com template.