Compare commits
No commits in common. "master" and "producao" have entirely different histories.
19 changed files with 471 additions and 1595 deletions
|
|
@ -1 +0,0 @@
|
||||||
*.tgz
|
|
||||||
86
AI.md
86
AI.md
|
|
@ -1,86 +0,0 @@
|
||||||
# AI / LLM usage notes (p-respostas)
|
|
||||||
|
|
||||||
Este pacote fornece um **contrato estável** de respostas para operações (principalmente APIs), representando:
|
|
||||||
|
|
||||||
- sucesso (`cod: 200`, `eCerto: true`, `eErro: false`, `mensagem: undefined`, `valor: T`)
|
|
||||||
- erro conhecido/permissão/não encontrado/timeout/erro interno (`cod` diferente de 200, `eErro: true`, `eCerto: false`, `valor: undefined`, `mensagem: string`)
|
|
||||||
|
|
||||||
## Imports
|
|
||||||
|
|
||||||
### TypeScript / ESM
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import {
|
|
||||||
codigosResposta,
|
|
||||||
gerarRespostas,
|
|
||||||
respostaComuns,
|
|
||||||
type tipoResposta,
|
|
||||||
type tipoRespostaErro,
|
|
||||||
type tipoRespostaSucesso,
|
|
||||||
type tipoPrErroInterno,
|
|
||||||
} from "p-respostas"
|
|
||||||
```
|
|
||||||
|
|
||||||
### CommonJS
|
|
||||||
|
|
||||||
```js
|
|
||||||
const { respostaComuns, gerarRespostas, codigosResposta } = require("p-respostas")
|
|
||||||
```
|
|
||||||
|
|
||||||
## Como interpretar uma `tipoResposta<T>`
|
|
||||||
|
|
||||||
Regras úteis para checagem:
|
|
||||||
|
|
||||||
- Se `res.eCerto === true` então:
|
|
||||||
- `res.cod === codigosResposta.sucesso`
|
|
||||||
- `res.valor` existe (tipo `T`)
|
|
||||||
- `res.mensagem` é `undefined`
|
|
||||||
|
|
||||||
- Se `res.eErro === true` então:
|
|
||||||
- `res.valor` é sempre `undefined`
|
|
||||||
- `res.mensagem` é sempre `string`
|
|
||||||
- `res.cod` é um dos códigos de erro
|
|
||||||
|
|
||||||
### Exemplo (narrowing recomendado)
|
|
||||||
|
|
||||||
Para o TypeScript, o narrowing mais robusto costuma ser usando `cod`:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import { codigosResposta, type tipoResposta } from "p-respostas"
|
|
||||||
|
|
||||||
function handle<T>(res: tipoResposta<T>) {
|
|
||||||
if (res.cod !== codigosResposta.sucesso) {
|
|
||||||
// aqui o TS entende tipoRespostaErro (na maioria dos setups)
|
|
||||||
return { ok: false as const, status: res.cod, message: res.mensagem }
|
|
||||||
}
|
|
||||||
|
|
||||||
// aqui o TS entende tipoRespostaSucesso<T>
|
|
||||||
return { ok: true as const, value: res.valor }
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
> Nota: em alguns setups, checar somente `res.eErro` pode não eliminar completamente `undefined` em `res.valor`.
|
|
||||||
> Se isso acontecer, prefira checar `cod` como no exemplo acima.
|
|
||||||
|
|
||||||
## Como gerar respostas com log de erro interno
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const respostas = gerarRespostas((op) => {
|
|
||||||
// op.erro: qualquer coisa lançada
|
|
||||||
// op.local: string (obrigatória)
|
|
||||||
// op.mensagem: string opcional
|
|
||||||
// op.__filename: opcional
|
|
||||||
console.error("Erro interno", op)
|
|
||||||
|
|
||||||
// Pode retornar complementos não-destrutivos
|
|
||||||
return { detalhes: ["id de rastreio: ..."] }
|
|
||||||
})
|
|
||||||
|
|
||||||
const r = respostas.erroInterno({ erro: new Error("boom"), local: "user.service" })
|
|
||||||
```
|
|
||||||
|
|
||||||
## Garantias / restrições
|
|
||||||
|
|
||||||
- Este pacote é amplamente importado por outros projetos.
|
|
||||||
- Os arquivos em `dist-*` são gerados automaticamente.
|
|
||||||
- Mudanças aqui devem focar em **melhorar o consumo (exports/tipos/docs)** sem alterar comportamento.
|
|
||||||
75
README.md
75
README.md
|
|
@ -1,74 +1 @@
|
||||||
# p-respostas
|
# drivers
|
||||||
|
|
||||||
Contrato simples e tipado de respostas para APIs e serviços (sucesso/erro), com suporte a:
|
|
||||||
|
|
||||||
- **ESM** (`import`) via `dist-front/index.mjs`
|
|
||||||
- **CommonJS** (`require`) via `dist-back/index.js`
|
|
||||||
- **TypeScript** com tipos publicados em `dist-front/index.d.mts`
|
|
||||||
|
|
||||||
> Importante: os diretórios `dist-*` são gerados automaticamente no build. Este repositório deve manter **compatibilidade** e **não alterar funcionalidades**.
|
|
||||||
|
|
||||||
## Instalação
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pnpm add p-respostas
|
|
||||||
# ou
|
|
||||||
npm i p-respostas
|
|
||||||
```
|
|
||||||
|
|
||||||
## Uso rápido
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import { respostaComuns, gerarRespostas, codigosResposta, type tipoResposta } from "p-respostas"
|
|
||||||
|
|
||||||
const r1 = respostaComuns.valor({ ok: true })
|
|
||||||
// r1.cod === 200
|
|
||||||
|
|
||||||
const r2 = respostaComuns.erro("Falha ao processar")
|
|
||||||
// r2.eErro === true
|
|
||||||
|
|
||||||
// Exemplo com logger/observabilidade
|
|
||||||
const respostas = gerarRespostas(({ erro, mensagem, local }) => {
|
|
||||||
console.error("erroInterno:", { erro, mensagem, local })
|
|
||||||
// pode sobrescrever parcialmente a resposta final
|
|
||||||
return { detalhes: ["contate o suporte" as const] }
|
|
||||||
})
|
|
||||||
|
|
||||||
const r3: tipoResposta<string> = respostas.valor("ok")
|
|
||||||
const r4: tipoResposta<string> = respostas.erroInterno({ erro: new Error("boom"), local: "serviceX" })
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
### `codigosResposta`
|
|
||||||
|
|
||||||
Enum com os códigos HTTP usados pelo contrato:
|
|
||||||
|
|
||||||
- `sucesso = 200`
|
|
||||||
- `erroConhecido = 400`
|
|
||||||
- `erroPermissao = 401`
|
|
||||||
- `erroNaoEncontrado = 404`
|
|
||||||
- `erroDesconhecido = 500`
|
|
||||||
- `tempoEsgotado = 504`
|
|
||||||
|
|
||||||
### Tipos
|
|
||||||
|
|
||||||
- `tipoRespostaSucesso<T>`
|
|
||||||
- `tipoRespostaErro`
|
|
||||||
- `tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro`
|
|
||||||
- `tipoPrErroInterno`
|
|
||||||
|
|
||||||
### `gerarRespostas(registrarErroInterno)`
|
|
||||||
|
|
||||||
Cria um conjunto de funções padronizadas para gerar respostas.
|
|
||||||
|
|
||||||
`registrarErroInterno(op)` recebe `{ erro, mensagem?, local, __filename? }` e pode retornar um `Partial<tipoRespostaErro>` para complementar a resposta final.
|
|
||||||
|
|
||||||
### `respostaComuns`
|
|
||||||
|
|
||||||
Instância default de `gerarRespostas(() => ({}))`.
|
|
||||||
|
|
||||||
## Compatibilidade
|
|
||||||
|
|
||||||
- Node: `>=20`
|
|
||||||
- Exporta ESM e CJS via `package.json#exports`
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
"use strict";
|
|
||||||
var __defProp = Object.defineProperty;
|
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
||||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
||||||
var __copyProps = (to, from, except, desc) => {
|
|
||||||
if (from && typeof from === "object" || typeof from === "function") {
|
|
||||||
for (let key of __getOwnPropNames(from))
|
|
||||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
||||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
||||||
}
|
|
||||||
return to;
|
|
||||||
};
|
|
||||||
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
||||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
||||||
var index_exports = {};
|
|
||||||
module.exports = __toCommonJS(index_exports);
|
|
||||||
__reExport(index_exports, require("./respostas"), module.exports);
|
|
||||||
// Annotate the CommonJS export names for ESM import in node:
|
|
||||||
0 && (module.exports = {
|
|
||||||
...require("./respostas")
|
|
||||||
});
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
"use strict";
|
|
||||||
var __defProp = Object.defineProperty;
|
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
||||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
||||||
var __export = (target, all) => {
|
|
||||||
for (var name in all)
|
|
||||||
__defProp(target, name, { get: all[name], enumerable: true });
|
|
||||||
};
|
|
||||||
var __copyProps = (to, from, except, desc) => {
|
|
||||||
if (from && typeof from === "object" || typeof from === "function") {
|
|
||||||
for (let key of __getOwnPropNames(from))
|
|
||||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
||||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
||||||
}
|
|
||||||
return to;
|
|
||||||
};
|
|
||||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
||||||
var respostas_exports = {};
|
|
||||||
__export(respostas_exports, {
|
|
||||||
codigosResposta: () => codigosResposta,
|
|
||||||
gerarRespostas: () => gerarRespostas,
|
|
||||||
respostaComuns: () => respostaComuns
|
|
||||||
});
|
|
||||||
module.exports = __toCommonJS(respostas_exports);
|
|
||||||
var codigosResposta = /* @__PURE__ */ ((codigosResposta2) => {
|
|
||||||
codigosResposta2[codigosResposta2["sucesso"] = 200] = "sucesso";
|
|
||||||
codigosResposta2[codigosResposta2["erroConhecido"] = 400] = "erroConhecido";
|
|
||||||
codigosResposta2[codigosResposta2["erroPermissao"] = 401] = "erroPermissao";
|
|
||||||
codigosResposta2[codigosResposta2["erroNaoEncontrado"] = 404] = "erroNaoEncontrado";
|
|
||||||
codigosResposta2[codigosResposta2["erroDesconhecido"] = 500] = "erroDesconhecido";
|
|
||||||
codigosResposta2[codigosResposta2["tempoEsgotado"] = 504] = "tempoEsgotado";
|
|
||||||
return codigosResposta2;
|
|
||||||
})(codigosResposta || {});
|
|
||||||
const gerarRespostas = (registrarErroInterno) => {
|
|
||||||
const valor = (valor2, detalhes) => {
|
|
||||||
return {
|
|
||||||
cod: 200 /* sucesso */,
|
|
||||||
valor: valor2,
|
|
||||||
mensagem: void 0,
|
|
||||||
eErro: false,
|
|
||||||
eCerto: true,
|
|
||||||
detalhes
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const valorTrue = (detalhes) => {
|
|
||||||
return {
|
|
||||||
cod: 200 /* sucesso */,
|
|
||||||
valor: true,
|
|
||||||
mensagem: void 0,
|
|
||||||
eErro: false,
|
|
||||||
eCerto: true,
|
|
||||||
detalhes
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const erro = (mensagem, detalhes) => {
|
|
||||||
return {
|
|
||||||
cod: 400 /* erroConhecido */,
|
|
||||||
valor: void 0,
|
|
||||||
mensagem,
|
|
||||||
eErro: true,
|
|
||||||
eCerto: false,
|
|
||||||
detalhes
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const erroPermissao = (mensagem, detalhes) => {
|
|
||||||
return {
|
|
||||||
cod: 401 /* erroPermissao */,
|
|
||||||
valor: void 0,
|
|
||||||
mensagem: mensagem || "Sem permiss\xE3o para esse recurso.",
|
|
||||||
eErro: true,
|
|
||||||
eCerto: false,
|
|
||||||
detalhes
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const naoEncontrado = (mensagem, detalhes) => {
|
|
||||||
return {
|
|
||||||
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.",
|
|
||||||
eErro: true,
|
|
||||||
eCerto: false,
|
|
||||||
detalhes
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const erroInterno = (op) => {
|
|
||||||
const resRegistro = registrarErroInterno(op);
|
|
||||||
const mensagemFim = `${op.mensagem || "Erro interno"}`;
|
|
||||||
return {
|
|
||||||
cod: 500 /* erroDesconhecido */,
|
|
||||||
valor: void 0,
|
|
||||||
mensagem: mensagemFim,
|
|
||||||
eErro: true,
|
|
||||||
eCerto: false,
|
|
||||||
...resRegistro
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const tempoEsgotado = (mensagem, detalhes) => {
|
|
||||||
return {
|
|
||||||
cod: 504 /* tempoEsgotado */,
|
|
||||||
valor: void 0,
|
|
||||||
mensagem: mensagem || "Tempo de resposta esgotado ao tentar acessar o recurso.",
|
|
||||||
eErro: true,
|
|
||||||
eCerto: false,
|
|
||||||
detalhes
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const erroEspera = tempoEsgotado;
|
|
||||||
return {
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de sucesso
|
|
||||||
*/
|
|
||||||
valor,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de sucesso com valor true
|
|
||||||
*/
|
|
||||||
valorTrue,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de erro conhecido
|
|
||||||
*/
|
|
||||||
erro,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
|
||||||
*/
|
|
||||||
erroPermissao,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
|
|
||||||
*/
|
|
||||||
erroInterno,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de erro quando um registro não é encontrado ou sua execução depende de um registro existente
|
|
||||||
*/
|
|
||||||
naoEncontrado,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
|
||||||
*/
|
|
||||||
tempoEsgotado,
|
|
||||||
/**
|
|
||||||
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
|
||||||
*/
|
|
||||||
erroEspera
|
|
||||||
};
|
|
||||||
};
|
|
||||||
const respostaComuns = gerarRespostas(() => ({}));
|
|
||||||
// Annotate the CommonJS export names for ESM import in node:
|
|
||||||
0 && (module.exports = {
|
|
||||||
codigosResposta,
|
|
||||||
gerarRespostas,
|
|
||||||
respostaComuns
|
|
||||||
});
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
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||{}),c=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}),d=(o,r)=>({cod:401,valor:void 0,mensagem:o||"Sem permiss\xE3o para esse recurso.",eErro:!0,eCerto:!1,detalhes:r}),p=(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:d,erroInterno:e,naoEncontrado:p,tempoEsgotado:s,erroEspera:s}},l=c(()=>({}));export{u as codigosResposta,c as gerarRespostas,l as respostaComuns};
|
|
||||||
1
dist-import/index.d.ts
vendored
Normal file
1
dist-import/index.d.ts
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export * from "./respostas";
|
||||||
1
dist-import/index.js
Normal file
1
dist-import/index.js
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export * from "./respostas";
|
||||||
|
|
@ -1,9 +1,4 @@
|
||||||
/**
|
export declare enum codigosResposta {
|
||||||
* Códigos padrão usados pelo contrato de respostas.
|
|
||||||
*
|
|
||||||
* Observação: este enum é parte da API pública do pacote.
|
|
||||||
*/
|
|
||||||
declare enum codigosResposta {
|
|
||||||
sucesso = 200,
|
sucesso = 200,
|
||||||
erroConhecido = 400,
|
erroConhecido = 400,
|
||||||
erroPermissao = 401,
|
erroPermissao = 401,
|
||||||
|
|
@ -11,7 +6,7 @@ declare enum codigosResposta {
|
||||||
erroDesconhecido = 500,
|
erroDesconhecido = 500,
|
||||||
tempoEsgotado = 504
|
tempoEsgotado = 504
|
||||||
}
|
}
|
||||||
type tipoRespostaSucesso<T> = {
|
export type tipoRespostaSucesso<T> = {
|
||||||
cod: codigosResposta.sucesso;
|
cod: codigosResposta.sucesso;
|
||||||
valor: T;
|
valor: T;
|
||||||
mensagem: undefined;
|
mensagem: undefined;
|
||||||
|
|
@ -19,7 +14,7 @@ type tipoRespostaSucesso<T> = {
|
||||||
eCerto: true;
|
eCerto: true;
|
||||||
detalhes?: string[];
|
detalhes?: string[];
|
||||||
};
|
};
|
||||||
type tipoRespostaErro = {
|
export type tipoRespostaErro = {
|
||||||
cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao | codigosResposta.erroNaoEncontrado | codigosResposta.tempoEsgotado;
|
cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao | codigosResposta.erroNaoEncontrado | codigosResposta.tempoEsgotado;
|
||||||
valor: undefined;
|
valor: undefined;
|
||||||
mensagem: string;
|
mensagem: string;
|
||||||
|
|
@ -27,23 +22,14 @@ type tipoRespostaErro = {
|
||||||
eCerto: false;
|
eCerto: false;
|
||||||
detalhes?: string[];
|
detalhes?: string[];
|
||||||
};
|
};
|
||||||
type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro;
|
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro;
|
||||||
type tipoPrErroInterno = {
|
export type tipoPrErroInterno = {
|
||||||
erro: any;
|
erro: any;
|
||||||
mensagem?: string;
|
mensagem?: string;
|
||||||
local: string;
|
local: string;
|
||||||
__filename?: string;
|
__filename?: string;
|
||||||
};
|
};
|
||||||
/**
|
export declare const gerarRespostas: (registrarErroInterno: (op: tipoPrErroInterno) => Partial<tipoRespostaErro>) => {
|
||||||
* Cria um conjunto de geradores de respostas.
|
|
||||||
*
|
|
||||||
* @param registrarErroInterno callback para registrar/normalizar erros internos.
|
|
||||||
*/
|
|
||||||
declare const gerarRespostas: (
|
|
||||||
/** Faz um processamento quando erro interno
|
|
||||||
* Recebe o erro gerado, mensagem personalizada e detalhes
|
|
||||||
*/
|
|
||||||
registrarErroInterno: (op: tipoPrErroInterno) => Partial<tipoRespostaErro>) => {
|
|
||||||
/**
|
/**
|
||||||
* Gera uma resposta de sucesso
|
* Gera uma resposta de sucesso
|
||||||
*/
|
*/
|
||||||
|
|
@ -78,9 +64,9 @@ registrarErroInterno: (op: tipoPrErroInterno) => Partial<tipoRespostaErro>) => {
|
||||||
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* Instância default (sem handler de erro interno).
|
* Uso de respostas em comuns
|
||||||
*/
|
*/
|
||||||
declare const respostaComuns: {
|
export declare const respostaComuns: {
|
||||||
/**
|
/**
|
||||||
* Gera uma resposta de sucesso
|
* Gera uma resposta de sucesso
|
||||||
*/
|
*/
|
||||||
|
|
@ -114,5 +100,3 @@ declare const respostaComuns: {
|
||||||
*/
|
*/
|
||||||
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
};
|
};
|
||||||
|
|
||||||
export { codigosResposta, gerarRespostas, respostaComuns, type tipoPrErroInterno, type tipoResposta, type tipoRespostaErro, type tipoRespostaSucesso };
|
|
||||||
127
dist-import/respostas.js
Normal file
127
dist-import/respostas.js
Normal file
|
|
@ -0,0 +1,127 @@
|
||||||
|
export var codigosResposta;
|
||||||
|
(function (codigosResposta) {
|
||||||
|
codigosResposta[codigosResposta["sucesso"] = 200] = "sucesso";
|
||||||
|
codigosResposta[codigosResposta["erroConhecido"] = 400] = "erroConhecido";
|
||||||
|
codigosResposta[codigosResposta["erroPermissao"] = 401] = "erroPermissao";
|
||||||
|
codigosResposta[codigosResposta["erroNaoEncontrado"] = 404] = "erroNaoEncontrado";
|
||||||
|
codigosResposta[codigosResposta["erroDesconhecido"] = 500] = "erroDesconhecido";
|
||||||
|
codigosResposta[codigosResposta["tempoEsgotado"] = 504] = "tempoEsgotado";
|
||||||
|
})(codigosResposta || (codigosResposta = {}));
|
||||||
|
export const gerarRespostas = (
|
||||||
|
/** Faz um processamento quando erro interno
|
||||||
|
* Recebe o erro gerado, mensagem personalizada e detalhes
|
||||||
|
*/
|
||||||
|
registrarErroInterno) => {
|
||||||
|
const valor = (valor, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.sucesso,
|
||||||
|
valor,
|
||||||
|
mensagem: undefined,
|
||||||
|
eErro: false,
|
||||||
|
eCerto: true,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const valorTrue = (detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.sucesso,
|
||||||
|
valor: true,
|
||||||
|
mensagem: undefined,
|
||||||
|
eErro: false,
|
||||||
|
eCerto: true,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erro = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroConhecido,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem,
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erroPermissao = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroPermissao,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagem || "Sem permissão para esse recurso.",
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const naoEncontrado = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroNaoEncontrado,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagem ||
|
||||||
|
"Registro não encontrado ou a execução dessa ação depende de um registro existente.",
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erroInterno = (op) => {
|
||||||
|
const resRegistro = registrarErroInterno(op);
|
||||||
|
const mensagemFim = `${op.mensagem || "Erro interno"}`;
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroDesconhecido,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagemFim,
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
...resRegistro,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const tempoEsgotado = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.tempoEsgotado,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagem || "Tempo de resposta esgotado ao tentar acessar o recurso.",
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erroEspera = tempoEsgotado;
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso
|
||||||
|
*/
|
||||||
|
valor,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso com valor true
|
||||||
|
*/
|
||||||
|
valorTrue,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro conhecido
|
||||||
|
*/
|
||||||
|
erro,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
||||||
|
*/
|
||||||
|
erroPermissao,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
|
||||||
|
*/
|
||||||
|
erroInterno,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando um registro não é encontrado ou sua execução depende de um registro existente
|
||||||
|
*/
|
||||||
|
naoEncontrado,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
tempoEsgotado,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
erroEspera,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Uso de respostas em comuns
|
||||||
|
*/
|
||||||
|
export const respostaComuns = gerarRespostas(() => ({}));
|
||||||
1
dist-require/index.d.ts
vendored
Normal file
1
dist-require/index.d.ts
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export * from "./respostas";
|
||||||
17
dist-require/index.js
Normal file
17
dist-require/index.js
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
"use strict";
|
||||||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
|
}) : (function(o, m, k, k2) {
|
||||||
|
if (k2 === undefined) k2 = k;
|
||||||
|
o[k2] = m[k];
|
||||||
|
}));
|
||||||
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
||||||
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
__exportStar(require("./respostas"), exports);
|
||||||
102
dist-require/respostas.d.ts
vendored
Normal file
102
dist-require/respostas.d.ts
vendored
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
export declare enum codigosResposta {
|
||||||
|
sucesso = 200,
|
||||||
|
erroConhecido = 400,
|
||||||
|
erroPermissao = 401,
|
||||||
|
erroNaoEncontrado = 404,
|
||||||
|
erroDesconhecido = 500,
|
||||||
|
tempoEsgotado = 504
|
||||||
|
}
|
||||||
|
export type tipoRespostaSucesso<T> = {
|
||||||
|
cod: codigosResposta.sucesso;
|
||||||
|
valor: T;
|
||||||
|
mensagem: undefined;
|
||||||
|
eErro: false;
|
||||||
|
eCerto: true;
|
||||||
|
detalhes?: string[];
|
||||||
|
};
|
||||||
|
export type tipoRespostaErro = {
|
||||||
|
cod: codigosResposta.erroConhecido | codigosResposta.erroDesconhecido | codigosResposta.erroPermissao | codigosResposta.erroNaoEncontrado | codigosResposta.tempoEsgotado;
|
||||||
|
valor: undefined;
|
||||||
|
mensagem: string;
|
||||||
|
eErro: true;
|
||||||
|
eCerto: false;
|
||||||
|
detalhes?: string[];
|
||||||
|
};
|
||||||
|
export type tipoResposta<T> = tipoRespostaSucesso<T> | tipoRespostaErro;
|
||||||
|
export type tipoPrErroInterno = {
|
||||||
|
erro: any;
|
||||||
|
mensagem?: string;
|
||||||
|
local: string;
|
||||||
|
__filename?: string;
|
||||||
|
};
|
||||||
|
export declare const gerarRespostas: (registrarErroInterno: (op: tipoPrErroInterno) => Partial<tipoRespostaErro>) => {
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso
|
||||||
|
*/
|
||||||
|
valor: <T>(valor: T, detalhes?: string[]) => tipoRespostaSucesso<T>;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso com valor true
|
||||||
|
*/
|
||||||
|
valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro conhecido
|
||||||
|
*/
|
||||||
|
erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
||||||
|
*/
|
||||||
|
erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
|
||||||
|
*/
|
||||||
|
erroInterno: (op: tipoPrErroInterno) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando um registro não é encontrado ou sua execução depende de um registro existente
|
||||||
|
*/
|
||||||
|
naoEncontrado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
tempoEsgotado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Uso de respostas em comuns
|
||||||
|
*/
|
||||||
|
export declare const respostaComuns: {
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso
|
||||||
|
*/
|
||||||
|
valor: <T>(valor: T, detalhes?: string[]) => tipoRespostaSucesso<T>;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso com valor true
|
||||||
|
*/
|
||||||
|
valorTrue: (detalhes?: string[]) => tipoRespostaSucesso<true>;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro conhecido
|
||||||
|
*/
|
||||||
|
erro: (mensagem: string, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
||||||
|
*/
|
||||||
|
erroPermissao: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
|
||||||
|
*/
|
||||||
|
erroInterno: (op: tipoPrErroInterno) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando um registro não é encontrado ou sua execução depende de um registro existente
|
||||||
|
*/
|
||||||
|
naoEncontrado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
tempoEsgotado: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
erroEspera: (mensagem?: string | undefined | null, detalhes?: string[]) => tipoRespostaErro;
|
||||||
|
};
|
||||||
131
dist-require/respostas.js
Normal file
131
dist-require/respostas.js
Normal file
|
|
@ -0,0 +1,131 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
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["erroNaoEncontrado"] = 404] = "erroNaoEncontrado";
|
||||||
|
codigosResposta[codigosResposta["erroDesconhecido"] = 500] = "erroDesconhecido";
|
||||||
|
codigosResposta[codigosResposta["tempoEsgotado"] = 504] = "tempoEsgotado";
|
||||||
|
})(codigosResposta || (exports.codigosResposta = codigosResposta = {}));
|
||||||
|
const gerarRespostas = (
|
||||||
|
/** Faz um processamento quando erro interno
|
||||||
|
* Recebe o erro gerado, mensagem personalizada e detalhes
|
||||||
|
*/
|
||||||
|
registrarErroInterno) => {
|
||||||
|
const valor = (valor, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.sucesso,
|
||||||
|
valor,
|
||||||
|
mensagem: undefined,
|
||||||
|
eErro: false,
|
||||||
|
eCerto: true,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const valorTrue = (detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.sucesso,
|
||||||
|
valor: true,
|
||||||
|
mensagem: undefined,
|
||||||
|
eErro: false,
|
||||||
|
eCerto: true,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erro = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroConhecido,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem,
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erroPermissao = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroPermissao,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagem || "Sem permissão para esse recurso.",
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const naoEncontrado = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroNaoEncontrado,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagem ||
|
||||||
|
"Registro não encontrado ou a execução dessa ação depende de um registro existente.",
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erroInterno = (op) => {
|
||||||
|
const resRegistro = registrarErroInterno(op);
|
||||||
|
const mensagemFim = `${op.mensagem || "Erro interno"}`;
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.erroDesconhecido,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagemFim,
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
...resRegistro,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const tempoEsgotado = (mensagem, detalhes) => {
|
||||||
|
return {
|
||||||
|
cod: codigosResposta.tempoEsgotado,
|
||||||
|
valor: undefined,
|
||||||
|
mensagem: mensagem || "Tempo de resposta esgotado ao tentar acessar o recurso.",
|
||||||
|
eErro: true,
|
||||||
|
eCerto: false,
|
||||||
|
detalhes,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const erroEspera = tempoEsgotado;
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso
|
||||||
|
*/
|
||||||
|
valor,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de sucesso com valor true
|
||||||
|
*/
|
||||||
|
valorTrue,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro conhecido
|
||||||
|
*/
|
||||||
|
erro,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro de permissão,será necessário fazer o login novamente
|
||||||
|
*/
|
||||||
|
erroPermissao,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro desconhecido, geralmente tem origem de um exception
|
||||||
|
*/
|
||||||
|
erroInterno,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando um registro não é encontrado ou sua execução depende de um registro existente
|
||||||
|
*/
|
||||||
|
naoEncontrado,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
tempoEsgotado,
|
||||||
|
/**
|
||||||
|
* Gera uma resposta de erro quando o tempo de resposta é esgotado
|
||||||
|
*/
|
||||||
|
erroEspera,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
exports.gerarRespostas = gerarRespostas;
|
||||||
|
/**
|
||||||
|
* Uso de respostas em comuns
|
||||||
|
*/
|
||||||
|
exports.respostaComuns = (0, exports.gerarRespostas)(() => ({}));
|
||||||
43
package.json
43
package.json
|
|
@ -1,39 +1,29 @@
|
||||||
{
|
{
|
||||||
"name": "p-respostas",
|
"name": "p-respostas",
|
||||||
"version": "0.62.0",
|
"version": "0.32.0",
|
||||||
"description": "Contrato simples de respostas (sucesso/erro) para APIs e serviços.",
|
"description": "",
|
||||||
"main": "./dist-back/index.js",
|
"main": "src/index.ts",
|
||||||
"module": "./dist-front/index.mjs",
|
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": {
|
||||||
"types": "./dist-front/index.d.mts",
|
"import": "./dist-import/index.js",
|
||||||
"import": "./dist-front/index.mjs",
|
"require": "./dist-require/index.js"
|
||||||
"require": "./dist-back/index.js"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"types": "./dist-front/index.d.mts",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=20"
|
|
||||||
},
|
|
||||||
"sideEffects": false,
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"postinstall": "pnpm up p-*",
|
||||||
|
"build-back": "rm -fr dist-require && tsc --project ./tsconfig-back.json",
|
||||||
|
"build-front": "rm -fr dist-import && tsc --project ./tsconfig-front.json",
|
||||||
|
"build": "npm --no-git-tag-version version minor && pnpm run biome && pnpm run build-back && pnpm run build-front",
|
||||||
"biome": "npx @biomejs/biome check --write ./src",
|
"biome": "npx @biomejs/biome check --write ./src",
|
||||||
"build": "npm --no-git-tag-version version minor && pnpm run biome && tsup --config ./node_modules/p-comuns/tsup/tsup.config.ts && pnpm run pacote",
|
|
||||||
"nodev": "check-node-version --node '>= 20'",
|
"nodev": "check-node-version --node '>= 20'",
|
||||||
"pacote": "npm pack && npm pack && mv $(npm pack --silent) pacote.tgz"
|
"at": "pnpm up p-*"
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"p-comuns": "git+https://git2.idz.one/publico/_comuns.git",
|
|
||||||
"zod": "4.1.4"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.4.0",
|
"p-comuns": "git+https://leitura:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MTQ3NTA1NzYsImlzcyI6IkdpdG5lc3MiLCJwaWQiOjgsInRrbiI6eyJ0eXAiOiJwYXQiLCJpZCI6MzJ9fQ.OYdExOVQm5UI3wfeTaWjmD0o65Y1hrjFz5EvMB1a__U@git.idz.one/git/multi-modulos-ambientais/_comuns.git#producao",
|
||||||
"@types/node": "^20.19.23",
|
"@biomejs/biome": "^2.0.6",
|
||||||
|
"@types/node": "^20.14.1",
|
||||||
"check-node-version": "^4.2.1",
|
"check-node-version": "^4.2.1",
|
||||||
"p-comuns": "git+https://git2.idz.one/publico/_comuns.git",
|
"typescript": "5.5.4"
|
||||||
"tsup": "^8.5.0",
|
|
||||||
"typescript": "~5.9.3",
|
|
||||||
"zod": "4.1.4"
|
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": {
|
"author": {
|
||||||
|
|
@ -41,5 +31,8 @@
|
||||||
"email": "ti@e-licencie.com.br",
|
"email": "ti@e-licencie.com.br",
|
||||||
"url": "https://e-licencie.com.br"
|
"url": "https://e-licencie.com.br"
|
||||||
},
|
},
|
||||||
"license": "ISC"
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"zod": "3.24.1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
pacote.tgz
BIN
pacote.tgz
Binary file not shown.
1263
pnpm-lock.yaml
generated
1263
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,2 +1 @@
|
||||||
// Re-export da API pública do pacote.
|
|
||||||
export * from "./respostas"
|
export * from "./respostas"
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,3 @@
|
||||||
/**
|
|
||||||
* Códigos padrão usados pelo contrato de respostas.
|
|
||||||
*
|
|
||||||
* Observação: este enum é parte da API pública do pacote.
|
|
||||||
*/
|
|
||||||
export enum codigosResposta {
|
export enum codigosResposta {
|
||||||
sucesso = 200,
|
sucesso = 200,
|
||||||
erroConhecido = 400,
|
erroConhecido = 400,
|
||||||
|
|
@ -44,11 +39,6 @@ export type tipoPrErroInterno = {
|
||||||
__filename?: string
|
__filename?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Cria um conjunto de geradores de respostas.
|
|
||||||
*
|
|
||||||
* @param registrarErroInterno callback para registrar/normalizar erros internos.
|
|
||||||
*/
|
|
||||||
export const gerarRespostas = (
|
export const gerarRespostas = (
|
||||||
/** Faz um processamento quando erro interno
|
/** Faz um processamento quando erro interno
|
||||||
* Recebe o erro gerado, mensagem personalizada e detalhes
|
* Recebe o erro gerado, mensagem personalizada e detalhes
|
||||||
|
|
@ -188,6 +178,6 @@ export const gerarRespostas = (
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instância default (sem handler de erro interno).
|
* Uso de respostas em comuns
|
||||||
*/
|
*/
|
||||||
export const respostaComuns = gerarRespostas(() => ({}))
|
export const respostaComuns = gerarRespostas(() => ({}))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue