historia · contexto
Historia
Día 22
El archivo mission.manifest de la Hespérides es tres kilobytes de KEY=VALUE con comentarios, espacios sobrantes y líneas de basura intercaladas. El parser original murió con el sistema; tienes que escribir uno tolerante.
Una línea del manifest dice CLIENTE=Zeew Corp. Otra, CLIENTE=Instituto Marén. Solo una puede ser cierta.
objetivo · spec
Tu misión
Tu misión
Implementa parsearManifest(texto) que convierte un string multilínea en un objeto:
- Separa el texto por saltos de línea (
\n). - Ignora líneas vacías (tras
trim) y líneas que empiezan con#. - Ignora líneas que no contienen
=. - Parte en la primera
=: lo de antes es la clave (trastrim), lo de después es el valor (trastrim). - Si una clave aparece varias veces, la última gana.
- Si la clave queda vacía tras
trim, descarta esa línea.
Ejemplo
parsearManifest('A=1\nB=2') // → { A: '1', B: '2' }
parsearManifest('# nota\nA=1') // → { A: '1' }
parsearManifest('A=b=c') // → { A: 'b=c' }
parsearManifest('') // → {}
validación
Casos de prueba
tests/8.casesmostrando 5 de 8
- [01]dos entradas
- [02]comentario ignorado
- [03]= en el valor no rompe
- [04]texto vacío
- [05]líneas sin = ignoradas
- … y 3 casos más, ocultos hasta enviar.