This commit is contained in:
Luiz Silva 2026-01-03 17:27:09 -03:00
parent a973f037de
commit 8c24d790ac

14
AI.md
View file

@ -41,12 +41,16 @@ Regras úteis para checagem:
- `res.mensagem` é sempre `string`
- `res.cod` é um dos códigos de erro
Exemplo:
### Exemplo (narrowing recomendado)
Para o TypeScript, o narrowing mais robusto costuma ser usando `cod`:
```ts
import { codigosResposta, type tipoResposta } from "p-respostas"
function handle<T>(res: tipoResposta<T>) {
if (res.eErro) {
// aqui o TS entende tipoRespostaErro
if (res.cod !== codigosResposta.sucesso) {
// aqui o TS entende tipoRespostaErro (na maioria dos setups)
return { ok: false as const, status: res.cod, message: res.mensagem }
}
@ -55,6 +59,9 @@ function handle<T>(res: tipoResposta<T>) {
}
```
> Nota: em alguns setups, checar somente `res.eErro` pode não eliminar completamente `undefined` em `res.valor`.
> Se isso acontecer, prefira checar `cod` como no exemplo acima.
## Como gerar respostas com log de erro interno
```ts
@ -77,4 +84,3 @@ const r = respostas.erroInterno({ erro: new Error("boom"), local: "user.service"
- Este pacote é amplamente importado por outros projetos.
- Os arquivos em `dist-*` são gerados automaticamente.
- Mudanças aqui devem focar em **melhorar o consumo (exports/tipos/docs)** sem alterar comportamento.