Pequeña aplicación estática para gestionar una lista de encantamientos.
Características principales
zod (local bundle zod-local) para validar cada encantamiento y el JSON importado.minLvl/maxLvl) definido en src/const.js; la app impide niveles fuera de rango (p. ej. Fortune 4 si el máximo es 3).localStorage. Hay una tentativa de sincronización por POST y una opción para descargar el JSON actualizado para reemplazar manualmente public/enchantments.json cuando se publica en un host estático.src/const.js contiene EnchantmentNames (lista con id, name, minLvl, maxLvl) y el diccionario exportado EnchantmentIdNameMap (id → name) usado por la validación y la UI.Uso
index.html en un navegador o servir el directorio con un servidor estático, por ejemplo:python -m http.server 8000
# luego abrir http://localhost:8000 en el navegador
{
"enchantments": [
{ "name": "fortune", "lvl": 3, "price": 5 }
]
}
localStorage.public/enchantments.json en un repo estático (p. ej. GitHub Pages) descarga el JSON desde la UI y reemplaza manualmente el archivo en la rama master.Notas para desarrolladores
src/index.js — componente de la UI, renderizado y handlers (incluye drag & drop).src/EnchantmentsDB.js — capa de datos: validación con Zod, import/export, persistencia.src/const.js — lista canónica EnchantmentNames y diccionario EnchantmentIdNameMap.public/enchantments.json — dataset por defecto (estático).EnchantmentNames en src/const.js y ajusta minLvl/maxLvl para cada entrada.name acepta tanto los id como los name definidos en src/const.js.Limitaciones y notas
public/enchantments.json. La app intenta un POST por compatibilidad con un posible endpoint, pero en hosts estáticos debes reemplazar manualmente el archivo tras la descarga.public/enchantments.json.Contribuciones
src/const.js y prueba la UI en local.Si quieres que añada autocompletado del campo #enchantment-name o que convierta automáticamente id → name al guardar, dime y lo implemento.