@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
40 lines (39 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NIVEL_SENIORIDADE_VALUES = exports.NivelSenioridade = void 0;
exports.isNivelSenioridade = isNivelSenioridade;
exports.assertNivelSenioridade = assertNivelSenioridade;
exports.coerceNivelSenioridade = coerceNivelSenioridade;
/**
* Enumeração de níveis de senioridade de cargo.
*/
var NivelSenioridade;
(function (NivelSenioridade) {
NivelSenioridade["DIRETOR"] = "diretor";
NivelSenioridade["COORDENADOR_GERAL"] = "coordenador_geral";
NivelSenioridade["COORDENADOR"] = "coordenador";
NivelSenioridade["CHEFE"] = "chefe";
NivelSenioridade["GERENTE"] = "gerente";
NivelSenioridade["ASSESSOR"] = "assessor";
NivelSenioridade["ESTAGIARIO"] = "estagiario";
})(NivelSenioridade || (exports.NivelSenioridade = NivelSenioridade = {}));
exports.NIVEL_SENIORIDADE_VALUES = [
NivelSenioridade.DIRETOR,
NivelSenioridade.COORDENADOR_GERAL,
NivelSenioridade.COORDENADOR,
NivelSenioridade.CHEFE,
NivelSenioridade.GERENTE,
NivelSenioridade.ASSESSOR,
NivelSenioridade.ESTAGIARIO,
];
const NIVEL_SENIORIDADE_SET = new Set(exports.NIVEL_SENIORIDADE_VALUES);
function isNivelSenioridade(value) {
return typeof value === "string" && NIVEL_SENIORIDADE_SET.has(value);
}
function assertNivelSenioridade(value) {
if (!isNivelSenioridade(value))
throw new Error(`NivelSenioridade inválido: ${String(value)}`);
}
function coerceNivelSenioridade(value, fallback = NivelSenioridade.ASSESSOR) {
return isNivelSenioridade(value) ? value : fallback;
}