http-service-result
v1.0.4
Published
A TypeScript utility package for handling HTTP requests with a Result pattern and custom exceptions
Maintainers
Readme
HTTP Service Library
Esta biblioteca fornece uma solução robusta para requisições HTTP em TypeScript utilizando Axios, com tratamento padronizado de erros através de exceções customizadas e o padrão Result. O objetivo é facilitar a integração HTTP, tornando o código mais seguro e previsível.
Instalação
npm i http-service-resultou
yarn add http-service-resultPrincipais Recursos
- Padrão Result: Todas as operações retornam um objeto
Resultado(SucessoouFalha), facilitando o tratamento explícito de erros. - Exceções customizadas: Diversas exceções para cenários HTTP comuns.
- HttpClient configurável: Classe para requisições GET, POST, PUT, DELETE e upload de arquivos.
- Tipagem forte: Totalmente escrito em TypeScript.
Uso
Importação
import { post, get, put, del, uploadFile } from 'http-service-result';Exemplo de uso direto
const response = await post<Usuario>('/auth', {
body: {
usuarioOuEmail: props.usuarioOuEmail,
senha: props.senha
}
});
if (response.ehSucesso()) {
// Acesso ao response.valor.data
} else {
// Tratamento de erro
}Exemplo GET
const resultado = await get<Produto[]>('produtos');
if (resultado.ehSucesso()) {
const produtos = resultado.valor?.data;
} else {
// resultado.erro contém a exceção customizada
}Upload de Arquivo
const fileInput = document.querySelector('input[type="file"]');
if (fileInput?.files?.[0]) {
const resultado = await client.uploadFile('upload', fileInput.files[0]);
if (resultado.ehSucesso()) {
// Sucesso no upload
} else {
// resultado.erro contém a exceção
}
}Padrão de Retorno
Todas as funções retornam um Resultado:
Sucesso<E, V>: contém o valor retornado em.valorFalha<E, V>: contém a exceção em.erro
Você pode usar os métodos utilitários:
ehSucesso()ehFalha()aplicarNoValor(fn)
Exceções Personalizadas
As principais exceções disponíveis são:
HttpServicoExcecaoHttpTimeoutExcecaoHttpAcessoNegadoExcecaoHttpProibidoExcecaoHttpRedeExcecao- E outras para cenários de domínio
Todas herdam de uma classe base Excecao e possuem métodos utilitários para mensagem, stack e dados adicionais.
Utilitários
Você pode criar resultados manualmente:
const sucesso = ResultadoUtil.sucesso('valor');
const falha = ResultadoUtil.falha(new HttpServicoExcecao('Erro customizado'));Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
