UNPKG

liquido

Version:

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

57 lines 2.42 kB
"use strict"; 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