No description
Find a file
2026-02-19 13:28:00 -03:00
.vscode build 2024-06-04 13:16:34 -03:00
dist-back removido bun 2025-07-17 11:22:27 -03:00
dist-front refatoração para ia 2026-01-03 17:24:42 -03:00
src refatoração para ia 2026-01-03 17:24:42 -03:00
.gitignore build 2024-06-04 13:16:34 -03:00
.npmignore pacote 2025-10-25 16:35:15 -03:00
AI.md . 2026-01-03 17:27:09 -03:00
biome.json . 2025-06-30 12:43:47 -03:00
package.json . 2026-02-19 13:28:00 -03:00
pacote.tgz . 2026-02-19 13:28:00 -03:00
pnpm-lock.yaml . 2026-02-19 13:28:00 -03:00
README.md refatoração para ia 2026-01-03 17:24:42 -03:00
tsconfig-back.json build 2024-06-04 13:16:34 -03:00
tsconfig-front.json build 2024-06-04 13:16:34 -03:00
tsconfig.json . 2024-08-22 14:44:20 -03:00

p-respostas

Contrato simples e tipado de respostas para APIs e serviços (sucesso/erro), com suporte a:

  • ESM (import) via dist-front/index.mjs
  • CommonJS (require) via dist-back/index.js
  • TypeScript com tipos publicados em dist-front/index.d.mts

Importante: os diretórios dist-* são gerados automaticamente no build. Este repositório deve manter compatibilidade e não alterar funcionalidades.

Instalação

pnpm add p-respostas
# ou
npm i p-respostas

Uso rápido

import { respostaComuns, gerarRespostas, codigosResposta, type tipoResposta } from "p-respostas"

const r1 = respostaComuns.valor({ ok: true })
// r1.cod === 200

const r2 = respostaComuns.erro("Falha ao processar")
// r2.eErro === true

// Exemplo com logger/observabilidade
const respostas = gerarRespostas(({ erro, mensagem, local }) => {
  console.error("erroInterno:", { erro, mensagem, local })
  // pode sobrescrever parcialmente a resposta final
  return { detalhes: ["contate o suporte" as const] }
})

const r3: tipoResposta<string> = respostas.valor("ok")
const r4: tipoResposta<string> = respostas.erroInterno({ erro: new Error("boom"), local: "serviceX" })

API

codigosResposta

Enum com os códigos HTTP usados pelo contrato:

  • sucesso = 200
  • erroConhecido = 400
  • erroPermissao = 401
  • erroNaoEncontrado = 404
  • erroDesconhecido = 500
  • tempoEsgotado = 504

Tipos

  • tipoRespostaSucesso<T>
  • tipoRespostaErro
  • tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro
  • tipoPrErroInterno

gerarRespostas(registrarErroInterno)

Cria um conjunto de funções padronizadas para gerar respostas.

registrarErroInterno(op) recebe { erro, mensagem?, local, __filename? } e pode retornar um Partial<tipoRespostaErro> para complementar a resposta final.

respostaComuns

Instância default de gerarRespostas(() => ({})).

Compatibilidade

  • Node: >=20
  • Exporta ESM e CJS via package.json#exports