@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
50 lines (49 loc) • 1.34 kB
JavaScript
/**
* @file esfera.enum.ts
* @module enums
*
* @description
* Define o enum que representa a esfera governamental de um controlador público.
*
* @remarks
* Corresponde ao schema da API Quarkus de Controladores e é utilizado em `ControladorDto`
* quando o controlador pertence ao setor público.
*
* @since 0.2.0
*/
/**
* Enumeração que representa a esfera governamental de um controlador público.
*
* @public
*/
export var Esfera;
(function (Esfera) {
/**
* Esfera Municipal (prefeituras, secretarias municipais, etc.).
*/
Esfera["MUNICIPAL"] = "MUNICIPAL";
/**
* Esfera Estadual (governos estaduais, secretarias estaduais, etc.).
*/
Esfera["ESTADUAL"] = "ESTADUAL";
/**
* Esfera Federal (ministérios, autarquias, etc.).
*/
Esfera["FEDERAL"] = "FEDERAL";
})(Esfera || (Esfera = {}));
export const ESFERA_VALUES = [
Esfera.MUNICIPAL,
Esfera.ESTADUAL,
Esfera.FEDERAL,
];
const ESFERA_SET = new Set(ESFERA_VALUES);
export function isEsfera(value) {
return typeof value === "string" && ESFERA_SET.has(value);
}
export function assertEsfera(value) {
if (!isEsfera(value))
throw new Error(`Esfera inválida: ${String(value)}`);
}
export function coerceEsfera(value, fallback = Esfera.FEDERAL) {
return isEsfera(value) ? value : fallback;
}