@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
56 lines (55 loc) • 1.56 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
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ESFERA_VALUES = exports.Esfera = void 0;
exports.isEsfera = isEsfera;
exports.assertEsfera = assertEsfera;
exports.coerceEsfera = coerceEsfera;
/**
* Enumeração que representa a esfera governamental de um controlador público.
*
* @public
*/
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 || (exports.Esfera = Esfera = {}));
exports.ESFERA_VALUES = [
Esfera.MUNICIPAL,
Esfera.ESTADUAL,
Esfera.FEDERAL,
];
const ESFERA_SET = new Set(exports.ESFERA_VALUES);
function isEsfera(value) {
return typeof value === "string" && ESFERA_SET.has(value);
}
function assertEsfera(value) {
if (!isEsfera(value))
throw new Error(`Esfera inválida: ${String(value)}`);
}
function coerceEsfera(value, fallback = Esfera.FEDERAL) {
return isEsfera(value) ? value : fallback;
}