@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
50 lines (49 loc) • 1.32 kB
JavaScript
/**
* @file poder.enum.ts
* @module enums
*
* @description
* Define o enum que representa o poder 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 os poderes da federação brasileira.
*
* @public
*/
export var Poder;
(function (Poder) {
/**
* Poder Executivo (presidência, ministérios, secretarias, etc.).
*/
Poder["EXECUTIVO"] = "EXECUTIVO";
/**
* Poder Legislativo (câmaras, assembleias, senado, etc.).
*/
Poder["LEGISLATIVO"] = "LEGISLATIVO";
/**
* Poder Judiciário (tribunais, juizados, etc.).
*/
Poder["JUDICIARIO"] = "JUDICIARIO";
})(Poder || (Poder = {}));
export const PODER_VALUES = [
Poder.EXECUTIVO,
Poder.LEGISLATIVO,
Poder.JUDICIARIO,
];
const PODER_SET = new Set(PODER_VALUES);
export function isPoder(value) {
return typeof value === "string" && PODER_SET.has(value);
}
export function assertPoder(value) {
if (!isPoder(value))
throw new Error(`Poder inválido: ${String(value)}`);
}
export function coercePoder(value, fallback = Poder.EXECUTIVO) {
return isPoder(value) ? value : fallback;
}