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 { funcaoErroInterno; detalhesErroInterno; constructor(funcaoErroInterno, opcoes) { this.funcaoErroInterno = funcaoErroInterno; this.detalhesErroInterno = 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(() => { // }); //# sourceMappingURL=resposta.js.map