This commit is contained in:
Luiz Silva 2024-05-07 10:17:51 -03:00
parent f30428ce4d
commit 1968877db8
63 changed files with 6 additions and 12 deletions

73
dist-import/resposta.js Normal file
View file

@ -0,0 +1,73 @@
import { esperar } from "./variaveisComuns";
export const codigosErros = {
400: "Erro de requisição",
403: "Não autenticado",
500: "Erro interno",
504: "Tempo de resposta excedido",
};
export class Resposta {
constructor(funcaoErroInterno, opcoes) {
this.funcaoErroInterno = funcaoErroInterno;
this.detalhesErroInterno = (opcoes === null || opcoes === void 0 ? void 0 : opcoes.detalhesErroInterno) || false;
}
addResultado(resultado) {
return {
codigo: 200,
eErro: false,
valor: resultado,
erro: undefined,
};
}
addSucesso(resultado) {
return this.addResultado(resultado);
}
addTrue() {
return this.addResultado(true);
}
addErro(erro, codigo) {
return {
codigo: codigo || 400,
eErro: true,
erro: erro,
valor: undefined,
};
}
addErroEspera(erro) {
return {
codigo: 504,
eErro: true,
erro: erro || codigosErros[504],
valor: undefined,
};
}
addErroInterno(...opcoes) {
//comunica o suporte sobre o erro
this.funcaoErroInterno(...opcoes);
return {
codigo: 500,
eErro: true,
erro: "Erro interno: Contate o suporte técnico.",
valor: undefined,
detalhes: this.detalhesErroInterno ? opcoes : undefined,
};
}
async addPromise(promise, limiteEspera) {
try {
const resultado = await Promise.race([
Promise.resolve(promise())
.then((re) => this.addResultado(re))
.catch((er) => this.addErro(er.message || er)),
...(limiteEspera
? [esperar(limiteEspera).then(() => this.addErroEspera())]
: []),
]);
return resultado;
}
catch (error) {
return this.addErro("Erro na resolução da Promessa.");
}
}
}
export const respostaCM = new Resposta(() => {
//
});