@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
34 lines (33 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.STATUS_INTEGRACAO_VALUES = exports.StatusIntegracao = void 0;
exports.isStatusIntegracao = isStatusIntegracao;
exports.assertStatusIntegracao = assertStatusIntegracao;
exports.coerceStatusIntegracao = coerceStatusIntegracao;
/**
* Enumeração de status de eventos/processos de integração.
*/
var StatusIntegracao;
(function (StatusIntegracao) {
StatusIntegracao["PENDING"] = "pending";
StatusIntegracao["OK"] = "ok";
StatusIntegracao["ERROR"] = "error";
StatusIntegracao["RETRY"] = "retry";
})(StatusIntegracao || (exports.StatusIntegracao = StatusIntegracao = {}));
exports.STATUS_INTEGRACAO_VALUES = [
StatusIntegracao.PENDING,
StatusIntegracao.OK,
StatusIntegracao.ERROR,
StatusIntegracao.RETRY,
];
const STATUS_INTEGRACAO_SET = new Set(exports.STATUS_INTEGRACAO_VALUES);
function isStatusIntegracao(value) {
return typeof value === "string" && STATUS_INTEGRACAO_SET.has(value);
}
function assertStatusIntegracao(value) {
if (!isStatusIntegracao(value))
throw new Error(`StatusIntegracao inválido: ${String(value)}`);
}
function coerceStatusIntegracao(value, fallback = StatusIntegracao.PENDING) {
return isStatusIntegracao(value) ? value : fallback;
}