UNPKG

liquido

Version:

Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português

54 lines 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CentroConfiguracoes = void 0; 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.name === '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]; this[caminhoConfiguracao[0]] .definirValor(this[caminhoConfiguracao[0]], caminhoConfiguracao, valorConfiguracao); } // TODO: Hablitar em modo verboso. // console.log(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