@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
51 lines (49 loc) • 2.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validarValores = validarValores;
const globais_1 = require("../atributos/globais");
const capturar_valor_1 = require("./capturar-valor");
function validarValores(nomePropriedade, valores, valoresAceitos, valoresExtra) {
const valorModificador = (0, capturar_valor_1.capturarValor)(valores);
let valoresCss = [];
if (valoresAceitos) {
valoresCss = Object.values(valoresAceitos);
}
const valoresGlobaisCss = Object.values(globais_1.valoresGlobais);
valoresGlobaisCss.forEach((valor) => valoresCss.push(valor));
// Eliminando valores duplicados
valoresCss = [...new Set(valoresCss)];
if (valoresExtra === null || valoresExtra === undefined) {
if (!(valorModificador.valor in valoresAceitos) &&
!(valoresCss.includes(valorModificador.valor)) &&
!(valorModificador.valor in globais_1.valoresGlobais)) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com valor ${valorModificador.valor} inválido. Valores FolES aceitos:
${Object.keys(valoresAceitos).reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(globais_1.valoresGlobais).reduce((final, atual) => (final += `, ${atual}`))}.
Valores CSS aceitos:
${valoresCss.reduce((final, atual) => (final += `, ${atual}`))}.`);
}
}
else {
let metodoValido = false;
if (valorModificador.metodo) {
for (let index = 0; index < valoresExtra.length; index++) {
metodoValido = valorModificador.valor === valoresExtra[index];
if (metodoValido)
break;
}
}
if (!(valorModificador.valor in valoresAceitos) &&
!(valorModificador.valor in valoresCss) &&
!metodoValido &&
!(valorModificador.valor in globais_1.valoresGlobais)) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com valor ${valorModificador.valor} inválido. Valores aceitos:
${Object.keys(valoresAceitos).reduce((final, atual) => (final += `, ${atual}`))},
${valoresExtra.reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(globais_1.valoresGlobais).reduce((final, atual) => (final += `, ${atual}`))}.
Valores CSS aceitos:
${valoresCss.reduce((final, atual) => (final += `, ${atual}`))}.`);
}
}
}
//# sourceMappingURL=comum.js.map