conversão para typescript 7
This commit is contained in:
parent
a3738c5e3f
commit
32df6cab5f
16 changed files with 1976 additions and 475 deletions
152
dist-front/respostas.js
Normal file
152
dist-front/respostas.js
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
/**
|
||||
* Códigos padrão usados pelo contrato de respostas.
|
||||
*
|
||||
* Observação: este enum é parte da API pública do pacote.
|
||||
*/
|
||||
export var codigosResposta;
|
||||
(function (codigosResposta) {
|
||||
codigosResposta[codigosResposta["sucesso"] = 200] = "sucesso";
|
||||
codigosResposta[codigosResposta["erroConhecido"] = 400] = "erroConhecido";
|
||||
codigosResposta[codigosResposta["erroPermissao"] = 401] = "erroPermissao";
|
||||
codigosResposta[codigosResposta["erroNaoEncontrado"] = 404] = "erroNaoEncontrado";
|
||||
codigosResposta[codigosResposta["erroDesconhecido"] = 500] = "erroDesconhecido";
|
||||
codigosResposta[codigosResposta["tempoEsgotado"] = 504] = "tempoEsgotado";
|
||||
})(codigosResposta || (codigosResposta = {}));
|
||||
// ─── Helper interno ─────────────────────────────────────────────────
|
||||
/**
|
||||
* Aplica o callback de interceptação quando fornecido.
|
||||
* Retorno com cast seguro: o callback preserva a forma da resposta,
|
||||
* mas o TypeScript não consegue estreitar o genérico <X> ao subtipo
|
||||
* concreto (ex.: tipoRespostaSucesso<T>), então o cast é inevitável
|
||||
* e está isolado neste único ponto.
|
||||
*/
|
||||
function aplicarCallback(resposta, callback) {
|
||||
if (!callback)
|
||||
return resposta;
|
||||
return callback(resposta);
|
||||
}
|
||||
export const IniciarRespostas = (
|
||||
/** Callback opcional de interceptação — invocado após a construção de cada resposta */
|
||||
callback) => {
|
||||
const valor = (valor, detalhes) => {
|
||||
const resposta = {
|
||||
cod: codigosResposta.sucesso,
|
||||
valor,
|
||||
mensagem: undefined,
|
||||
eErro: false,
|
||||
eCerto: true,
|
||||
detalhes,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const valorTrue = (detalhes) => {
|
||||
const resposta = {
|
||||
cod: codigosResposta.sucesso,
|
||||
valor: true,
|
||||
mensagem: undefined,
|
||||
eErro: false,
|
||||
eCerto: true,
|
||||
detalhes,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erro = (mensagem, detalhes) => {
|
||||
const resposta = {
|
||||
cod: codigosResposta.erroConhecido,
|
||||
valor: undefined,
|
||||
mensagem,
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
detalhes,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erroPermissao = (mensagem, detalhes) => {
|
||||
const resposta = {
|
||||
cod: codigosResposta.erroPermissao,
|
||||
valor: undefined,
|
||||
mensagem: mensagem || "Sem permissão para esse recurso.",
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
detalhes,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const naoEncontrado = (mensagem, detalhes) => {
|
||||
const resposta = {
|
||||
cod: codigosResposta.erroNaoEncontrado,
|
||||
valor: undefined,
|
||||
mensagem: mensagem ||
|
||||
"Registro não encontrado ou a execução dessa ação depende de um registro existente.",
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
detalhes,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erroInterno = (op) => {
|
||||
const mensagemFim = `${op.mensagem || "Erro interno"}`;
|
||||
const resposta = {
|
||||
cod: codigosResposta.erroDesconhecido,
|
||||
valor: undefined,
|
||||
mensagem: mensagemFim,
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const tempoEsgotado = (mensagem, detalhes) => {
|
||||
const resposta = {
|
||||
cod: codigosResposta.tempoEsgotado,
|
||||
valor: undefined,
|
||||
mensagem: mensagem || "Tempo de resposta esgotado ao tentar acessar o recurso.",
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
detalhes,
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erroEspera = tempoEsgotado;
|
||||
return {
|
||||
/**
|
||||
* Gera uma resposta de sucesso
|
||||
*/
|
||||
valor,
|
||||
/**
|
||||
* Gera uma resposta de sucesso com valor true
|
||||
*/
|
||||
valorTrue,
|
||||
/**
|
||||
* Gera uma resposta de erro conhecido
|
||||
*/
|
||||
erro,
|
||||
/**
|
||||
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
||||
*/
|
||||
erroPermissao,
|
||||
/**
|
||||
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
|
||||
*/
|
||||
erroInterno,
|
||||
/**
|
||||
* Gera uma resposta de erro quando um registro não é encontrado ou sua execução depende de um registro existente
|
||||
*/
|
||||
naoEncontrado,
|
||||
/**
|
||||
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||
*/
|
||||
tempoEsgotado,
|
||||
/**
|
||||
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||
*/
|
||||
erroEspera,
|
||||
};
|
||||
};
|
||||
/**
|
||||
* @deprecated Use IniciarRespostas em seu lugar
|
||||
*/
|
||||
export const gerarRespostas = IniciarRespostas;
|
||||
/**
|
||||
* Instância default (sem handler de interceptação).
|
||||
*/
|
||||
export const respostaComuns = IniciarRespostas();
|
||||
Loading…
Add table
Add a link
Reference in a new issue