@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
56 lines (55 loc) • 1.53 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
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.PODER_VALUES = exports.Poder = void 0;
exports.isPoder = isPoder;
exports.assertPoder = assertPoder;
exports.coercePoder = coercePoder;
/**
* Enumeração que representa os poderes da federação brasileira.
*
* @public
*/
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 || (exports.Poder = Poder = {}));
exports.PODER_VALUES = [
Poder.EXECUTIVO,
Poder.LEGISLATIVO,
Poder.JUDICIARIO,
];
const PODER_SET = new Set(exports.PODER_VALUES);
function isPoder(value) {
return typeof value === "string" && PODER_SET.has(value);
}
function assertPoder(value) {
if (!isPoder(value))
throw new Error(`Poder inválido: ${String(value)}`);
}
function coercePoder(value, fallback = Poder.EXECUTIVO) {
return isPoder(value) ? value : fallback;
}