liquido
Version:
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português
57 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CentroConfiguracoes = void 0;
const declaracoes_1 = require("@designliquido/delegua/declaracoes");
const configuracao_liquido_1 = require("./configuracao-liquido");
/**
* O centro de configurações. Desdobra o arquivo de configuração e monta
* os objetos de configuração de Liquido.
*/
class CentroConfiguracoes {
constructor(declaracoes) {
this.liquido = new configuracao_liquido_1.ConfiguracaoLiquido();
const entradasConfiguracao = [];
for (const declaracao of declaracoes) {
if (declaracao.constructor === declaracoes_1.Comentario) {
continue;
}
const expressao = declaracao.expressao;
const entradaConfiguracao = this.desdobrarConfiguracao(expressao);
entradasConfiguracao.push(entradaConfiguracao);
}
for (const entradaConfiguracao of entradasConfiguracao) {
const caminhoConfiguracao = entradaConfiguracao[0];
const valorConfiguracao = entradaConfiguracao[1];
const propriedadeConfiguracao = caminhoConfiguracao[0];
const aspecto = this[propriedadeConfiguracao];
aspecto.definirValor(aspecto, caminhoConfiguracao, valorConfiguracao);
}
if (this.liquido.verboso) {
console.log('[Liquido] Configuração carregada:', this);
}
}
desdobrarConfiguracao(expressaoDefinirValor) {
const objetoAlvo = expressaoDefinirValor.objeto;
const nomePropriedade = expressaoDefinirValor.nome.lexema;
const informacoesVariavel = expressaoDefinirValor.valor;
let partesNomePropriedade = [objetoAlvo.simbolo.lexema, nomePropriedade];
if (objetoAlvo.objeto) {
partesNomePropriedade = [
...this.desdobrarNomePropriedade(objetoAlvo.objeto),
...partesNomePropriedade
];
}
return [partesNomePropriedade, informacoesVariavel.valor];
}
desdobrarNomePropriedade(objetoExterno) {
if (!objetoExterno.objeto) {
return [objetoExterno.simbolo.lexema];
}
return [
...this.desdobrarNomePropriedade(objetoExterno.objeto),
objetoExterno.simbolo.lexema
];
}
}
exports.CentroConfiguracoes = CentroConfiguracoes;
//# sourceMappingURL=index.js.map