build
This commit is contained in:
parent
e884cdd3d8
commit
9f8aa2299a
7 changed files with 97 additions and 42 deletions
|
|
@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
var respostas_exports = {};
|
||||
__export(respostas_exports, {
|
||||
IniciarRespostas: () => IniciarRespostas,
|
||||
codigosResposta: () => codigosResposta,
|
||||
gerarRespostas: () => gerarRespostas,
|
||||
respostaComuns: () => respostaComuns
|
||||
|
|
@ -32,9 +33,13 @@ var codigosResposta = /* @__PURE__ */ ((codigosResposta2) => {
|
|||
codigosResposta2[codigosResposta2["tempoEsgotado"] = 504] = "tempoEsgotado";
|
||||
return codigosResposta2;
|
||||
})(codigosResposta || {});
|
||||
const gerarRespostas = (registrarErroInterno) => {
|
||||
function aplicarCallback(resposta, callback) {
|
||||
if (!callback) return resposta;
|
||||
return callback(resposta);
|
||||
}
|
||||
const IniciarRespostas = (callback) => {
|
||||
const valor = (valor2, detalhes) => {
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 200 /* sucesso */,
|
||||
valor: valor2,
|
||||
mensagem: void 0,
|
||||
|
|
@ -42,9 +47,10 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
eCerto: true,
|
||||
detalhes
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const valorTrue = (detalhes) => {
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 200 /* sucesso */,
|
||||
valor: true,
|
||||
mensagem: void 0,
|
||||
|
|
@ -52,9 +58,10 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
eCerto: true,
|
||||
detalhes
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erro = (mensagem, detalhes) => {
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 400 /* erroConhecido */,
|
||||
valor: void 0,
|
||||
mensagem,
|
||||
|
|
@ -62,9 +69,10 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
eCerto: false,
|
||||
detalhes
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erroPermissao = (mensagem, detalhes) => {
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 401 /* erroPermissao */,
|
||||
valor: void 0,
|
||||
mensagem: mensagem || "Sem permiss\xE3o para esse recurso.",
|
||||
|
|
@ -72,9 +80,10 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
eCerto: false,
|
||||
detalhes
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const naoEncontrado = (mensagem, detalhes) => {
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 404 /* erroNaoEncontrado */,
|
||||
valor: void 0,
|
||||
mensagem: mensagem || "Registro n\xE3o encontrado ou a execu\xE7\xE3o dessa a\xE7\xE3o depende de um registro existente.",
|
||||
|
|
@ -82,21 +91,21 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
eCerto: false,
|
||||
detalhes
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erroInterno = (op) => {
|
||||
const resRegistro = registrarErroInterno(op);
|
||||
const mensagemFim = `${op.mensagem || "Erro interno"}`;
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 500 /* erroDesconhecido */,
|
||||
valor: void 0,
|
||||
mensagem: mensagemFim,
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
...resRegistro
|
||||
eCerto: false
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const tempoEsgotado = (mensagem, detalhes) => {
|
||||
return {
|
||||
const resposta = {
|
||||
cod: 504 /* tempoEsgotado */,
|
||||
valor: void 0,
|
||||
mensagem: mensagem || "Tempo de resposta esgotado ao tentar acessar o recurso.",
|
||||
|
|
@ -104,6 +113,7 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
eCerto: false,
|
||||
detalhes
|
||||
};
|
||||
return aplicarCallback(resposta, callback);
|
||||
};
|
||||
const erroEspera = tempoEsgotado;
|
||||
return {
|
||||
|
|
@ -141,9 +151,11 @@ const gerarRespostas = (registrarErroInterno) => {
|
|||
erroEspera
|
||||
};
|
||||
};
|
||||
const respostaComuns = gerarRespostas(() => ({}));
|
||||
const gerarRespostas = IniciarRespostas;
|
||||
const respostaComuns = IniciarRespostas();
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
IniciarRespostas,
|
||||
codigosResposta,
|
||||
gerarRespostas,
|
||||
respostaComuns
|
||||
|
|
|
|||
|
|
@ -34,6 +34,13 @@ type tipoPrErroInterno = {
|
|||
local: string;
|
||||
__filename?: string;
|
||||
};
|
||||
/**
|
||||
* Tipo do callback opcional de interceptação de respostas.
|
||||
*
|
||||
* Quando fornecido, é invocado após a construção de toda resposta,
|
||||
* permitindo side-effects (ex.: logging, telemetria) sem alterar o tipo.
|
||||
*/
|
||||
type tipoCallbackResposta = <X>(resposta: tipoResposta<X>) => tipoResposta<X>;
|
||||
/**
|
||||
* Cria um conjunto de geradores de respostas.
|
||||
*
|
||||
|
|
@ -49,14 +56,16 @@ interface InterfaceRespostas {
|
|||
tempoEsgotado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||
}
|
||||
declare const gerarRespostas: (
|
||||
/** Faz um processamento quando erro interno
|
||||
* Recebe o erro gerado, mensagem personalizada e detalhes
|
||||
*/
|
||||
registrarErroInterno: (op: tipoPrErroInterno) => Partial<tipoRespostaErro>) => InterfaceRespostas;
|
||||
declare const IniciarRespostas: (
|
||||
/** Callback opcional de interceptação — invocado após a construção de cada resposta */
|
||||
callback?: tipoCallbackResposta) => InterfaceRespostas;
|
||||
/**
|
||||
* Instância default (sem handler de erro interno).
|
||||
* @deprecated Use IniciarRespostas em seu lugar
|
||||
*/
|
||||
declare const gerarRespostas: (callback?: tipoCallbackResposta) => InterfaceRespostas;
|
||||
/**
|
||||
* Instância default (sem handler de interceptação).
|
||||
*/
|
||||
declare const respostaComuns: InterfaceRespostas;
|
||||
|
||||
export { type InterfaceRespostas, codigosResposta, gerarRespostas, respostaComuns, type tipoPrErroInterno, type tipoResposta, type tipoRespostaErro, type tipoRespostaSucesso };
|
||||
export { IniciarRespostas, type InterfaceRespostas, codigosResposta, gerarRespostas, respostaComuns, type tipoCallbackResposta, type tipoPrErroInterno, type tipoResposta, type tipoRespostaErro, type tipoRespostaSucesso };
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
var u=(e=>(e[e.sucesso=200]="sucesso",e[e.erroConhecido=400]="erroConhecido",e[e.erroPermissao=401]="erroPermissao",e[e.erroNaoEncontrado=404]="erroNaoEncontrado",e[e.erroDesconhecido=500]="erroDesconhecido",e[e.tempoEsgotado=504]="tempoEsgotado",e))(u||{}),g=t=>{let n=(o,r)=>({cod:200,valor:o,mensagem:void 0,eErro:!1,eCerto:!0,detalhes:r}),a=o=>({cod:200,valor:!0,mensagem:void 0,eErro:!1,eCerto:!0,detalhes:o}),i=(o,r)=>({cod:400,valor:void 0,mensagem:o,eErro:!0,eCerto:!1,detalhes:r}),p=(o,r)=>({cod:401,valor:void 0,mensagem:o||"Sem permiss\xE3o para esse recurso.",eErro:!0,eCerto:!1,detalhes:r}),d=(o,r)=>({cod:404,valor:void 0,mensagem:o||"Registro n\xE3o encontrado ou a execu\xE7\xE3o dessa a\xE7\xE3o depende de um registro existente.",eErro:!0,eCerto:!1,detalhes:r}),e=o=>{let r=t(o);return{cod:500,valor:void 0,mensagem:`${o.mensagem||"Erro interno"}`,eErro:!0,eCerto:!1,...r}},s=(o,r)=>({cod:504,valor:void 0,mensagem:o||"Tempo de resposta esgotado ao tentar acessar o recurso.",eErro:!0,eCerto:!1,detalhes:r});return{valor:n,valorTrue:a,erro:i,erroPermissao:p,erroInterno:e,naoEncontrado:d,tempoEsgotado:s,erroEspera:s}},l=g(()=>({}));export{u as codigosResposta,g as gerarRespostas,l as respostaComuns};
|
||||
var m=(e=>(e[e.sucesso=200]="sucesso",e[e.erroConhecido=400]="erroConhecido",e[e.erroPermissao=401]="erroPermissao",e[e.erroNaoEncontrado=404]="erroNaoEncontrado",e[e.erroDesconhecido=500]="erroDesconhecido",e[e.tempoEsgotado=504]="tempoEsgotado",e))(m||{});function t(s,a){return a?a(s):s}var i=s=>{let a=(o,r)=>t({cod:200,valor:o,mensagem:void 0,eErro:!1,eCerto:!0,detalhes:r},s),d=o=>t({cod:200,valor:!0,mensagem:void 0,eErro:!1,eCerto:!0,detalhes:o},s),u=(o,r)=>t({cod:400,valor:void 0,mensagem:o,eErro:!0,eCerto:!1,detalhes:r},s),c=(o,r)=>t({cod:401,valor:void 0,mensagem:o||"Sem permiss\xE3o para esse recurso.",eErro:!0,eCerto:!1,detalhes:r},s),g=(o,r)=>t({cod:404,valor:void 0,mensagem:o||"Registro n\xE3o encontrado ou a execu\xE7\xE3o dessa a\xE7\xE3o depende de um registro existente.",eErro:!0,eCerto:!1,detalhes:r},s),e=o=>{let n={cod:500,valor:void 0,mensagem:`${o.mensagem||"Erro interno"}`,eErro:!0,eCerto:!1};return t(n,s)},p=(o,r)=>t({cod:504,valor:void 0,mensagem:o||"Tempo de resposta esgotado ao tentar acessar o recurso.",eErro:!0,eCerto:!1,detalhes:r},s);return{valor:a,valorTrue:d,erro:u,erroPermissao:c,erroInterno:e,naoEncontrado:g,tempoEsgotado:p,erroEspera:p}},l=i,R=i();export{i as IniciarRespostas,m as codigosResposta,l as gerarRespostas,R as respostaComuns};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "p-respostas",
|
||||
"version": "0.66.0",
|
||||
"version": "0.67.0",
|
||||
"description": "Contrato simples de respostas (sucesso/erro) para APIs e serviços.",
|
||||
"main": "./dist-back/index.js",
|
||||
"module": "./dist-front/index.mjs",
|
||||
|
|
@ -24,16 +24,16 @@
|
|||
},
|
||||
"peerDependencies": {
|
||||
"p-comuns": "git+https://git2.idz.one/publico/_comuns.git",
|
||||
"zod": "4.3.6"
|
||||
"zod": "4.4.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "2.4.0",
|
||||
"@biomejs/biome": "2.4.12",
|
||||
"@types/node": "^22.19.15",
|
||||
"check-node-version": "^4.2.1",
|
||||
"p-comuns": "git+https://git2.idz.one/publico/_comuns.git",
|
||||
"tsup": "^8.5.1",
|
||||
"typescript": "^6",
|
||||
"zod": "4.3.6"
|
||||
"zod": "4.4.3"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
|
|
|
|||
BIN
pacote.tgz
BIN
pacote.tgz
Binary file not shown.
|
|
@ -44,6 +44,16 @@ export type tipoPrErroInterno = {
|
|||
__filename?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Tipo do callback opcional de interceptação de respostas.
|
||||
*
|
||||
* Quando fornecido, é invocado após a construção de toda resposta,
|
||||
* permitindo side-effects (ex.: logging, telemetria) sem alterar o tipo.
|
||||
*/
|
||||
export type tipoCallbackResposta = <X>(
|
||||
resposta: tipoResposta<X>,
|
||||
) => tipoResposta<X>
|
||||
|
||||
/**
|
||||
* Cria um conjunto de geradores de respostas.
|
||||
*
|
||||
|
|
@ -72,14 +82,28 @@ export interface InterfaceRespostas {
|
|||
) => tipoRespostaErro
|
||||
}
|
||||
|
||||
export const gerarRespostas = (
|
||||
/** Faz um processamento quando erro interno
|
||||
* Recebe o erro gerado, mensagem personalizada e detalhes
|
||||
*/
|
||||
registrarErroInterno: (op: tipoPrErroInterno) => Partial<tipoRespostaErro>,
|
||||
// ─── 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<R extends tipoResposta<unknown>>(
|
||||
resposta: R,
|
||||
callback?: tipoCallbackResposta,
|
||||
): R {
|
||||
if (!callback) return resposta
|
||||
return callback(resposta) as R
|
||||
}
|
||||
|
||||
export const IniciarRespostas = (
|
||||
/** Callback opcional de interceptação — invocado após a construção de cada resposta */
|
||||
callback?: tipoCallbackResposta,
|
||||
): InterfaceRespostas => {
|
||||
const valor = <T>(valor: T, detalhes?: string[]): tipoRespostaSucesso<T> => {
|
||||
return {
|
||||
const resposta: tipoRespostaSucesso<T> = {
|
||||
cod: codigosResposta.sucesso,
|
||||
valor,
|
||||
mensagem: undefined,
|
||||
|
|
@ -87,10 +111,11 @@ export const gerarRespostas = (
|
|||
eCerto: true,
|
||||
detalhes,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const valorTrue = (detalhes?: string[]): tipoRespostaSucesso<true> => {
|
||||
return {
|
||||
const resposta: tipoRespostaSucesso<true> = {
|
||||
cod: codigosResposta.sucesso,
|
||||
valor: true,
|
||||
mensagem: undefined,
|
||||
|
|
@ -98,10 +123,11 @@ export const gerarRespostas = (
|
|||
eCerto: true,
|
||||
detalhes,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const erro = (mensagem: string, detalhes?: string[]): tipoRespostaErro => {
|
||||
return {
|
||||
const resposta: tipoRespostaErro = {
|
||||
cod: codigosResposta.erroConhecido,
|
||||
valor: undefined,
|
||||
mensagem,
|
||||
|
|
@ -109,13 +135,14 @@ export const gerarRespostas = (
|
|||
eCerto: false,
|
||||
detalhes,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const erroPermissao = (
|
||||
mensagem?: string | undefined | null,
|
||||
detalhes?: string[],
|
||||
): tipoRespostaErro => {
|
||||
return {
|
||||
const resposta: tipoRespostaErro = {
|
||||
cod: codigosResposta.erroPermissao,
|
||||
valor: undefined,
|
||||
mensagem: mensagem || "Sem permissão para esse recurso.",
|
||||
|
|
@ -123,13 +150,14 @@ export const gerarRespostas = (
|
|||
eCerto: false,
|
||||
detalhes,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const naoEncontrado = (
|
||||
mensagem?: string | undefined | null,
|
||||
detalhes?: string[],
|
||||
): tipoRespostaErro => {
|
||||
return {
|
||||
const resposta: tipoRespostaErro = {
|
||||
cod: codigosResposta.erroNaoEncontrado,
|
||||
valor: undefined,
|
||||
mensagem:
|
||||
|
|
@ -139,28 +167,27 @@ export const gerarRespostas = (
|
|||
eCerto: false,
|
||||
detalhes,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const erroInterno = (op: tipoPrErroInterno): tipoRespostaErro => {
|
||||
const resRegistro = registrarErroInterno(op)
|
||||
|
||||
const mensagemFim = `${op.mensagem || "Erro interno"}`
|
||||
|
||||
return {
|
||||
const resposta: tipoRespostaErro = {
|
||||
cod: codigosResposta.erroDesconhecido,
|
||||
valor: undefined,
|
||||
mensagem: mensagemFim,
|
||||
eErro: true,
|
||||
eCerto: false,
|
||||
...resRegistro,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const tempoEsgotado = (
|
||||
mensagem?: string | undefined | null,
|
||||
detalhes?: string[],
|
||||
): tipoRespostaErro => {
|
||||
return {
|
||||
const resposta: tipoRespostaErro = {
|
||||
cod: codigosResposta.tempoEsgotado,
|
||||
valor: undefined,
|
||||
mensagem:
|
||||
|
|
@ -169,6 +196,7 @@ export const gerarRespostas = (
|
|||
eCerto: false,
|
||||
detalhes,
|
||||
}
|
||||
return aplicarCallback(resposta, callback)
|
||||
}
|
||||
|
||||
const erroEspera = tempoEsgotado
|
||||
|
|
@ -211,6 +239,11 @@ export const gerarRespostas = (
|
|||
}
|
||||
|
||||
/**
|
||||
* Instância default (sem handler de erro interno).
|
||||
* @deprecated Use IniciarRespostas em seu lugar
|
||||
*/
|
||||
export const respostaComuns = gerarRespostas(() => ({}))
|
||||
export const gerarRespostas = IniciarRespostas
|
||||
|
||||
/**
|
||||
* Instância default (sem handler de interceptação).
|
||||
*/
|
||||
export const respostaComuns = IniciarRespostas()
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
/* Linguagem e Ambiente */
|
||||
"target": "ES2020", /* Define a versão do JavaScript para o código emitido. */
|
||||
"lib": ["ES2022", "DOM", "DOM.Iterable"],/* Especifica as bibliotecas padrão a serem incluídas, como DOM para iteradores. */
|
||||
"ignoreDeprecations": "6.0", /* Ignora erros de compatibilidade com depreciações TS 6.x */
|
||||
// IA manter "ignoreDeprecations": "6.0",
|
||||
"ignoreDeprecations": "6.0", /* Ignora erros de compatibilidade com depreciações TS 6.x */
|
||||
"experimentalDecorators": true, /* Habilita o suporte experimental a decoradores. */
|
||||
"emitDecoratorMetadata": true, /* Emite metadados de tipos de design para declarações decoradas. */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue