@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
63 lines (62 loc) • 1.87 kB
JavaScript
/**
* 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
*/
export var StatusInterno;
(function (StatusInterno) {
StatusInterno["IMPORTADO"] = "IMPORTADO";
StatusInterno["NOVO"] = "NOVO";
StatusInterno["EM_PROCESSAMENTO"] = "EM_PROCESSAMENTO";
StatusInterno["PROCESSADO"] = "PROCESSADO";
StatusInterno["CONSOLIDADO"] = "CONSOLIDADO";
})(StatusInterno || (StatusInterno = {}));
/**
* Lista imutável com todos os valores de {@link StatusInterno}.
*
* @public
*/
export const STATUS_INTERNO_VALUES = [
StatusInterno.IMPORTADO,
StatusInterno.NOVO,
StatusInterno.EM_PROCESSAMENTO,
StatusInterno.PROCESSADO,
StatusInterno.CONSOLIDADO,
];
const STATUS_INTERNO_SET = new Set(STATUS_INTERNO_VALUES);
/**
* Verifica se um valor é um {@link StatusInternoLiteral} válido.
*
* @public
*/
export 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
*/
export 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
*/
export function coerceStatusInterno(value, fallback = StatusInterno.NOVO) {
return isStatusInterno(value) ? value : fallback;
}