_comuns/dist-cjs/resposta.js
2024-05-07 09:27:49 -03:00

80 lines
No EOL
2.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.respostaCM = exports.Resposta = exports.codigosErros = void 0;
const variaveisComuns_1 = require("./variaveisComuns");
exports.codigosErros = {
400: "Erro de requisição",
403: "Não autenticado",
500: "Erro interno",
504: "Tempo de resposta excedido",
};
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 || exports.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
? [(0, variaveisComuns_1.esperar)(limiteEspera).then(() => this.addErroEspera())]
: []),
]);
return resultado;
}
catch (error) {
return this.addErro("Erro na resolução da Promessa.");
}
}
}
exports.Resposta = Resposta;
exports.respostaCM = new Resposta(() => {
//
});
//# sourceMappingURL=resposta.js.map