fix(#117): delega validação delprops ao pacote @designliquido/delprops - #132
Merged
leonelsanchesdasilva merged 5 commits intoJul 29, 2026
Conversation
added 3 commits
July 28, 2026 10:16
…quido/delprops - Substitui 374 linhas de esquemas hardcoded e validação manual por delegação ao pacote @designliquido/delprops (analisar + registrar + validar) - Mantém removerComentarioLinha() para preservar URLs com // em aspas - Registra todos os namespaces: liquido, aplicacao, roteador, dados, autenticacao, estilos — via pacote, nevera hardcoded - Adiciona suporte automático a liquido.estilos.diretorioBase, liquido.roteador.porta, liquido.dados.<nome>.host|porta|usuario|senha|banco - Reescrita completa dos testes com mocks do pacote - Remove dependência de interfaces.ts (EsquemaPropriedade, TipoValor)
…s ausentes - Adiciona verificarPropriedadesAusentes() que percorre esquemas registrados e sinaliza propriedades sem padrao (default) como obrigatórias — solução heurística que dispensa modificação no pacote @designliquido/delprops - Namespace dinâmico liquido.dados.<nome> tratado com agrupamento por fonte - Namespaces flat (aplicacao, roteador, etc.) verificados diretamente - Avisos emitidos como DiagnosticSeverity.Warning no Range(0,0,0,0) (topo do documento) - 6 novos testes: ausente simples, com padrao ignorado, todas preenchidas, dados ausente, dados completo, múltiplos namespaces
…fora do pacote) A heurística !padrao para detectar propriedades obrigatórias não é exposta pelo pacote @designliquido/delprops — DefinicaoPropriedade não tem campo required. Remove função e 6 testes.
leonelsanchesdasilva
merged commit Jul 29, 2026
afc84b1
into
DesignLiquido:principal
4 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolve #117
Descrição
Esta PR simplifica o validador de arquivos
.delprops, substituindo esquemas hardcoded e lógica manual por uma implementação baseada diretamente no pacote oficial@designliquido/delprops.Com essa mudança, a extensão passa a utilizar o pacote como única fonte da verdade para os schemas de configuração, eliminando inconsistências, reduzindo significativamente a quantidade de código mantido e facilitando futuras evoluções do framework.
Problema
O arquivo:
mantinha 374 linhas de esquemas hardcoded e lógica de validação manual.
Essa implementação apresentava diversos problemas:
@designliquido/delpropsv0.3.0;porta,host,usuario,senhaebancoexistiam no pacote oficial, mas geravam falsos warnings na extensão;liquido.estilosnão era reconhecido;liquido.verbosopermanecia sendo aceito, embora não exista mais no framework;Essa duplicação aumentava o custo de manutenção e favorecia divergências entre a extensão e o framework.
Solução
O validador foi reescrito para delegar a validação ao pacote oficial
@designliquido/delprops.O novo fluxo de validação é composto por três etapas:
A função
removerComentarioLinha()foi mantida para garantir que URLs contendo//dentro de aspas não sejam interpretadas como comentários.Schemas registrados pelo pacote
Os schemas deixam de ser mantidos manualmente na extensão e passam a ser registrados diretamente através de
registrar().liquidoarquetipo+linguagemliquido.aplicacaoaplicacaoliquido.roteadorroteadorliquido.dadosdadosliquido.autenticacaoautenticacaoliquido.estilosestilosDessa forma,
@designliquido/delpropspassa a ser a única fonte da verdade para as definições de configuração.Mudanças de comportamento
liquido.roteador.porta = 3000portaexiste no schema oficialliquido.roteador.porta = 'texto'portaaceita apenas númerosliquido.dados.bd.porta = 5432portaexiste no schema oficialliquido.dados.bd.host = 'localhost'hostexiste no schema oficialliquido.dados.bd.usuario = 'admin'usuarioexiste no schema oficialliquido.dados.bd.senha = 'secret'senhaexiste no schema oficialliquido.dados.bd.banco = 'meu-db'bancoexiste no schema oficialliquido.estilos.diretorioBase = 'publico/css'liquido.verboso = verdadeiroRefatoração
fontes/linguagens/delprops/validador-delprops.tsO arquivo foi reduzido de 374 para 73 linhas, removendo aproximadamente 301 linhas de código.
Removido
esquemaPropriedadesLiquidoesquemaAplicacaoesquemaLicencaesquemaRoteadoresquemaDadosDiretoesquemaFonteDadosesquemaAutenticacaoinferirTipoValor()extrairValorTexto()validarTipoEValor()validarPropriedadeLiquido()switch/casecom 9 ramificações.Adicionado
registrar()para os seis namespaces oficiais;aplanarEsquemas(), responsável por converterContribuicaoEsquema[]emDefinicaoPropriedade[].Foi mantida apenas a função:
necessária para preservar corretamente URLs contendo
//dentro de strings.Testes
Atualizado:
Principais alterações:
analisar();validar();registrar();obterTodos();../../../fontes/interfaces;//.Arquivos alterados
fontes/linguagens/delprops/validador-delprops.tstestes/linguagens/delprops/validador-delprops.test.tsVerificação
Foram executadas as seguintes verificações:
npx jest --testPathPatterns="validador-delprops" --no-coverageResultado:
Também foi executado:
Resultado:
Resultado
Com esta PR, o validador
.delpropspassa a utilizar diretamente as definições oficiais do pacote@designliquido/delprops, eliminando inconsistências entre a extensão e o framework, reduzindo significativamente a quantidade de código mantido e simplificando a evolução futura do suporte a arquivos de configuração.**Resolve #117 **