UNPKG

@anpdgovbr/shared-types

Version:

Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)

69 lines (68 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.STATUS_INTERNO_VALUES = exports.StatusInterno = void 0; exports.isStatusInterno = isStatusInterno; exports.assertStatusInterno = assertStatusInterno; exports.coerceStatusInterno = coerceStatusInterno; /** * Enumeração que representa os possíveis status internos de um processo ou entidade. * * @remarks * Utilizado para indicar o estágio atual do processamento interno, desde a importação até a consolidação. * * @enum {string} * @readonly * @public */ var StatusInterno; (function (StatusInterno) { StatusInterno["IMPORTADO"] = "IMPORTADO"; StatusInterno["NOVO"] = "NOVO"; StatusInterno["EM_PROCESSAMENTO"] = "EM_PROCESSAMENTO"; StatusInterno["PROCESSADO"] = "PROCESSADO"; StatusInterno["CONSOLIDADO"] = "CONSOLIDADO"; })(StatusInterno || (exports.StatusInterno = StatusInterno = {})); /** * Lista imutável com todos os valores de {@link StatusInterno}. * * @public */ exports.STATUS_INTERNO_VALUES = [ StatusInterno.IMPORTADO, StatusInterno.NOVO, StatusInterno.EM_PROCESSAMENTO, StatusInterno.PROCESSADO, StatusInterno.CONSOLIDADO, ]; const STATUS_INTERNO_SET = new Set(exports.STATUS_INTERNO_VALUES); /** * Verifica se um valor é um {@link StatusInternoLiteral} válido. * * @public */ function isStatusInterno(value) { return typeof value === "string" && STATUS_INTERNO_SET.has(value); } /** * Asserção de tipo para {@link StatusInternoLiteral}. * Lança erro se o valor for inválido. * * @throws Error * @public */ function assertStatusInterno(value) { if (!isStatusInterno(value)) { throw new Error(`StatusInterno inválido: ${String(value)}`); } } /** * Coerção de valor para {@link StatusInternoLiteral} com fallback. * * @param value - Valor a ser convertido. * @param fallback - Valor padrão quando `value` não é válido (default: StatusInterno.NOVO). * @returns Valor coerente dentro do domínio de StatusInterno. * @public */ function coerceStatusInterno(value, fallback = StatusInterno.NOVO) { return isStatusInterno(value) ? value : fallback; }