.
This commit is contained in:
parent
a973f037de
commit
8c24d790ac
1 changed files with 10 additions and 4 deletions
14
AI.md
14
AI.md
|
|
@ -41,12 +41,16 @@ Regras úteis para checagem:
|
||||||
- `res.mensagem` é sempre `string`
|
- `res.mensagem` é sempre `string`
|
||||||
- `res.cod` é um dos códigos de erro
|
- `res.cod` é um dos códigos de erro
|
||||||
|
|
||||||
Exemplo:
|
### Exemplo (narrowing recomendado)
|
||||||
|
|
||||||
|
Para o TypeScript, o narrowing mais robusto costuma ser usando `cod`:
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
|
import { codigosResposta, type tipoResposta } from "p-respostas"
|
||||||
|
|
||||||
function handle<T>(res: tipoResposta<T>) {
|
function handle<T>(res: tipoResposta<T>) {
|
||||||
if (res.eErro) {
|
if (res.cod !== codigosResposta.sucesso) {
|
||||||
// aqui o TS entende tipoRespostaErro
|
// aqui o TS entende tipoRespostaErro (na maioria dos setups)
|
||||||
return { ok: false as const, status: res.cod, message: res.mensagem }
|
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
|
## Como gerar respostas com log de erro interno
|
||||||
|
|
||||||
```ts
|
```ts
|
||||||
|
|
@ -77,4 +84,3 @@ const r = respostas.erroInterno({ erro: new Error("boom"), local: "user.service"
|
||||||
- Este pacote é amplamente importado por outros projetos.
|
- Este pacote é amplamente importado por outros projetos.
|
||||||
- Os arquivos em `dist-*` são gerados automaticamente.
|
- Os arquivos em `dist-*` são gerados automaticamente.
|
||||||
- Mudanças aqui devem focar em **melhorar o consumo (exports/tipos/docs)** sem alterar comportamento.
|
- Mudanças aqui devem focar em **melhorar o consumo (exports/tipos/docs)** sem alterar comportamento.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue