This commit is contained in:
Luiz H. R. Silva 2024-06-11 08:39:43 -03:00
parent 1ae6fb6d51
commit 2c3f2b5a66
6 changed files with 113 additions and 58 deletions

View file

@ -1,34 +1,40 @@
export declare enum codigosResposta {
sucesso = 200,
erroConhecido = 400,
erroPermissao = 401,
erroDesconhecido = 500
}
export type tipoRespostaSucesso<T> = { export type tipoRespostaSucesso<T> = {
cod: 200; cod: codigosResposta.sucesso;
valor: T; valor: T;
mensagem: undefined; mensagem: undefined;
eErro: false; eErro: false;
eCerto: true; eCerto: true;
detalhe?: undefined; detalhes?: string[];
}; };
export type tipoRespostaErro = { export type tipoRespostaErro = {
cod: 400 | 401 | 500; cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao;
valor: undefined; valor: undefined;
mensagem: string; mensagem: string;
eErro: true; eErro: true;
eCerto: false; eCerto: false;
detalhe?: string[]; detalhes?: string[];
}; };
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro; export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro;
export declare const gerarRespostas: <T>(registrarErroInterno: (erro: T) => Partial<tipoRespostaErro>) => { export declare const gerarRespostas: <T>(registrarErroInterno: (erro: T) => Partial<tipoRespostaErro>) => {
valor: <T_1>(valor: T_1) => tipoRespostaSucesso<T_1>; valor: <T_1>(valor: T_1, detalhes?: string[]) => tipoRespostaSucesso<T_1>;
valorTrue: () => tipoRespostaSucesso<true>; valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
erro: (mensagem: string) => tipoRespostaErro; erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
erroPermissao: (mensagem?: string) => tipoRespostaErro; erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
erroInterno: (parametros: T, mensagem?: string) => tipoRespostaErro; erroInterno: (parametros: T, mensagem?: string) => tipoRespostaErro;
}; };
/** /**
* Uso de respostas em comuns * Uso de respostas em comuns
*/ */
export declare const respostaComuns: { export declare const respostaComuns: {
valor: <T>(valor: T) => tipoRespostaSucesso<T>; valor: <T>(valor: T, detalhes?: string[]) => tipoRespostaSucesso<T>;
valorTrue: () => tipoRespostaSucesso<true>; valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
erro: (mensagem: string) => tipoRespostaErro; erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
erroPermissao: (mensagem?: string) => tipoRespostaErro; erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
erroInterno: (parametros: unknown, mensagem?: string) => tipoRespostaErro; erroInterno: (parametros: unknown, mensagem?: string) => tipoRespostaErro;
}; };

View file

@ -1,50 +1,61 @@
export var codigosResposta;
(function (codigosResposta) {
codigosResposta[codigosResposta["sucesso"] = 200] = "sucesso";
codigosResposta[codigosResposta["erroConhecido"] = 400] = "erroConhecido";
codigosResposta[codigosResposta["erroPermissao"] = 401] = "erroPermissao";
codigosResposta[codigosResposta["erroDesconhecido"] = 500] = "erroDesconhecido";
})(codigosResposta || (codigosResposta = {}));
export const gerarRespostas = (registrarErroInterno) => { export const gerarRespostas = (registrarErroInterno) => {
/** /**
* Gera uma resposta de sucesso * Gera uma resposta de sucesso
*/ */
const valor = (valor) => { const valor = (valor, detalhes) => {
return { return {
cod: 200, cod: codigosResposta.sucesso,
valor, valor,
mensagem: undefined, mensagem: undefined,
eErro: false, eErro: false,
eCerto: true, eCerto: true,
detalhes,
}; };
}; };
/** /**
* Gera uma resposta de sucesso com valor true * Gera uma resposta de sucesso com valor true
*/ */
const valorTrue = () => { const valorTrue = (detalhes) => {
return { return {
cod: 200, cod: codigosResposta.sucesso,
valor: true, valor: true,
mensagem: undefined, mensagem: undefined,
eErro: false, eErro: false,
eCerto: true, eCerto: true,
detalhes,
}; };
}; };
/** /**
* Gera uma resposta de erro conhecido * Gera uma resposta de erro conhecido
*/ */
const erro = (mensagem) => { const erro = (mensagem, detalhes) => {
return { return {
cod: 400, cod: codigosResposta.erroConhecido,
valor: undefined, valor: undefined,
mensagem, mensagem,
eErro: true, eErro: true,
eCerto: false, eCerto: false,
detalhes,
}; };
}; };
/** /**
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente * Gera uma resposta de erro de permissão,será necessário fazer o login novamente
*/ */
const erroPermissao = (mensagem) => { const erroPermissao = (mensagem, detalhes) => {
return { return {
cod: 401, cod: codigosResposta.erroPermissao,
valor: undefined, valor: undefined,
mensagem: mensagem || "Sem permissão para esse recurso.", mensagem: mensagem || "Sem permissão para esse recurso.",
eErro: true, eErro: true,
eCerto: false, eCerto: false,
detalhes,
}; };
}; };
/** /**
@ -54,7 +65,7 @@ export const gerarRespostas = (registrarErroInterno) => {
const resRegistro = registrarErroInterno(parametros); const resRegistro = registrarErroInterno(parametros);
const mensagemFim = `${mensagem || "Erro interno"}`; const mensagemFim = `${mensagem || "Erro interno"}`;
return { return {
cod: 500, cod: codigosResposta.erroDesconhecido,
valor: undefined, valor: undefined,
mensagem: mensagemFim, mensagem: mensagemFim,
eErro: true, eErro: true,

View file

@ -1,34 +1,40 @@
export declare enum codigosResposta {
sucesso = 200,
erroConhecido = 400,
erroPermissao = 401,
erroDesconhecido = 500
}
export type tipoRespostaSucesso<T> = { export type tipoRespostaSucesso<T> = {
cod: 200; cod: codigosResposta.sucesso;
valor: T; valor: T;
mensagem: undefined; mensagem: undefined;
eErro: false; eErro: false;
eCerto: true; eCerto: true;
detalhe?: undefined; detalhes?: string[];
}; };
export type tipoRespostaErro = { export type tipoRespostaErro = {
cod: 400 | 401 | 500; cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao;
valor: undefined; valor: undefined;
mensagem: string; mensagem: string;
eErro: true; eErro: true;
eCerto: false; eCerto: false;
detalhe?: string[]; detalhes?: string[];
}; };
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro; export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro;
export declare const gerarRespostas: <T>(registrarErroInterno: (erro: T) => Partial<tipoRespostaErro>) => { export declare const gerarRespostas: <T>(registrarErroInterno: (erro: T) => Partial<tipoRespostaErro>) => {
valor: <T_1>(valor: T_1) => tipoRespostaSucesso<T_1>; valor: <T_1>(valor: T_1, detalhes?: string[]) => tipoRespostaSucesso<T_1>;
valorTrue: () => tipoRespostaSucesso<true>; valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
erro: (mensagem: string) => tipoRespostaErro; erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
erroPermissao: (mensagem?: string) => tipoRespostaErro; erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
erroInterno: (parametros: T, mensagem?: string) => tipoRespostaErro; erroInterno: (parametros: T, mensagem?: string) => tipoRespostaErro;
}; };
/** /**
* Uso de respostas em comuns * Uso de respostas em comuns
*/ */
export declare const respostaComuns: { export declare const respostaComuns: {
valor: <T>(valor: T) => tipoRespostaSucesso<T>; valor: <T>(valor: T, detalhes?: string[]) => tipoRespostaSucesso<T>;
valorTrue: () => tipoRespostaSucesso<true>; valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
erro: (mensagem: string) => tipoRespostaErro; erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
erroPermissao: (mensagem?: string) => tipoRespostaErro; erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
erroInterno: (parametros: unknown, mensagem?: string) => tipoRespostaErro; erroInterno: (parametros: unknown, mensagem?: string) => tipoRespostaErro;
}; };

View file

@ -1,53 +1,64 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.respostaComuns = exports.gerarRespostas = void 0; exports.respostaComuns = exports.gerarRespostas = exports.codigosResposta = void 0;
var codigosResposta;
(function (codigosResposta) {
codigosResposta[codigosResposta["sucesso"] = 200] = "sucesso";
codigosResposta[codigosResposta["erroConhecido"] = 400] = "erroConhecido";
codigosResposta[codigosResposta["erroPermissao"] = 401] = "erroPermissao";
codigosResposta[codigosResposta["erroDesconhecido"] = 500] = "erroDesconhecido";
})(codigosResposta = exports.codigosResposta || (exports.codigosResposta = {}));
const gerarRespostas = (registrarErroInterno) => { const gerarRespostas = (registrarErroInterno) => {
/** /**
* Gera uma resposta de sucesso * Gera uma resposta de sucesso
*/ */
const valor = (valor) => { const valor = (valor, detalhes) => {
return { return {
cod: 200, cod: codigosResposta.sucesso,
valor, valor,
mensagem: undefined, mensagem: undefined,
eErro: false, eErro: false,
eCerto: true, eCerto: true,
detalhes,
}; };
}; };
/** /**
* Gera uma resposta de sucesso com valor true * Gera uma resposta de sucesso com valor true
*/ */
const valorTrue = () => { const valorTrue = (detalhes) => {
return { return {
cod: 200, cod: codigosResposta.sucesso,
valor: true, valor: true,
mensagem: undefined, mensagem: undefined,
eErro: false, eErro: false,
eCerto: true, eCerto: true,
detalhes,
}; };
}; };
/** /**
* Gera uma resposta de erro conhecido * Gera uma resposta de erro conhecido
*/ */
const erro = (mensagem) => { const erro = (mensagem, detalhes) => {
return { return {
cod: 400, cod: codigosResposta.erroConhecido,
valor: undefined, valor: undefined,
mensagem, mensagem,
eErro: true, eErro: true,
eCerto: false, eCerto: false,
detalhes,
}; };
}; };
/** /**
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente * Gera uma resposta de erro de permissão,será necessário fazer o login novamente
*/ */
const erroPermissao = (mensagem) => { const erroPermissao = (mensagem, detalhes) => {
return { return {
cod: 401, cod: codigosResposta.erroPermissao,
valor: undefined, valor: undefined,
mensagem: mensagem || "Sem permissão para esse recurso.", mensagem: mensagem || "Sem permissão para esse recurso.",
eErro: true, eErro: true,
eCerto: false, eCerto: false,
detalhes,
}; };
}; };
/** /**
@ -57,7 +68,7 @@ const gerarRespostas = (registrarErroInterno) => {
const resRegistro = registrarErroInterno(parametros); const resRegistro = registrarErroInterno(parametros);
const mensagemFim = `${mensagem || "Erro interno"}`; const mensagemFim = `${mensagem || "Erro interno"}`;
return { return {
cod: 500, cod: codigosResposta.erroDesconhecido,
valor: undefined, valor: undefined,
mensagem: mensagemFim, mensagem: mensagemFim,
eErro: true, eErro: true,

View file

@ -1,6 +1,6 @@
{ {
"name": "p-respostas", "name": "p-respostas",
"version": "0.5.0", "version": "0.8.0",
"description": "", "description": "",
"main": "src/index.ts", "main": "src/index.ts",
"exports": { "exports": {
@ -25,7 +25,11 @@
"typescript": "^4.9.5" "typescript": "^4.9.5"
}, },
"keywords": [], "keywords": [],
"author": "", "author": {
"name": "AZTECA SOFTWARE LTDA",
"email": "ti@e-licencie.com.br",
"url": "https://e-licencie.com.br"
},
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"zod": "3.23.8" "zod": "3.23.8"

View file

@ -1,21 +1,31 @@
export enum codigosResposta {
sucesso = 200,
erroConhecido = 400,
erroPermissao = 401,
erroDesconhecido = 500,
}
export type tipoRespostaSucesso<T> = { export type tipoRespostaSucesso<T> = {
cod: 200 cod: codigosResposta.sucesso
valor: T valor: T
mensagem: undefined mensagem: undefined
eErro: false eErro: false
eCerto: true eCerto: true
detalhe?: undefined detalhes?: string[]
} }
export type tipoRespostaErro = { export type tipoRespostaErro = {
//400 é um erro conhecido, //400 é um erro conhecido,
//500 é um erro desconhecido, geralmente tem origem de um exception //500 é um erro desconhecido, geralmente tem origem de um exception
cod: 400 | 401 | 500 cod:
| codigosResposta.erroConhecido
| codigosResposta.erroDesconhecido
| codigosResposta.erroPermissao
valor: undefined valor: undefined
mensagem: string mensagem: string
eErro: true eErro: true
eCerto: false eCerto: false
detalhe?: string[] detalhes?: string[]
} }
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro
@ -26,52 +36,59 @@ export const gerarRespostas = <T>(
/** /**
* Gera uma resposta de sucesso * Gera uma resposta de sucesso
*/ */
const valor = <T>(valor: T): tipoRespostaSucesso<T> => { const valor = <T>(valor: T, detalhes?: string[]): tipoRespostaSucesso<T> => {
return { return {
cod: 200, cod: codigosResposta.sucesso,
valor, valor,
mensagem: undefined, mensagem: undefined,
eErro: false, eErro: false,
eCerto: true, eCerto: true,
detalhes,
} }
} }
/** /**
* Gera uma resposta de sucesso com valor true * Gera uma resposta de sucesso com valor true
*/ */
const valorTrue = (): tipoRespostaSucesso<true> => { const valorTrue = (detalhes?: string[]): tipoRespostaSucesso<true> => {
return { return {
cod: 200, cod: codigosResposta.sucesso,
valor: true, valor: true,
mensagem: undefined, mensagem: undefined,
eErro: false, eErro: false,
eCerto: true, eCerto: true,
detalhes,
} }
} }
/** /**
* Gera uma resposta de erro conhecido * Gera uma resposta de erro conhecido
*/ */
const erro = (mensagem: string): tipoRespostaErro => { const erro = (mensagem: string, detalhes?: string[]): tipoRespostaErro => {
return { return {
cod: 400, cod: codigosResposta.erroConhecido,
valor: undefined, valor: undefined,
mensagem, mensagem,
eErro: true, eErro: true,
eCerto: false, eCerto: false,
detalhes,
} }
} }
/** /**
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente * Gera uma resposta de erro de permissão,será necessário fazer o login novamente
*/ */
const erroPermissao = (mensagem?: string): tipoRespostaErro => { const erroPermissao = (
mensagem?: string | undefined | null,
detalhes?: string[],
): tipoRespostaErro => {
return { return {
cod: 401, cod: codigosResposta.erroPermissao,
valor: undefined, valor: undefined,
mensagem: mensagem || "Sem permissão para esse recurso.", mensagem: mensagem || "Sem permissão para esse recurso.",
eErro: true, eErro: true,
eCerto: false, eCerto: false,
detalhes,
} }
} }
@ -84,7 +101,7 @@ export const gerarRespostas = <T>(
const mensagemFim = `${mensagem || "Erro interno"}` const mensagemFim = `${mensagem || "Erro interno"}`
return { return {
cod: 500, cod: codigosResposta.erroDesconhecido,
valor: undefined, valor: undefined,
mensagem: mensagemFim, mensagem: mensagemFim,
eErro: true, eErro: true,