import json from textwrap import dedent import db.persistence as persistence def dump() -> None: data = [ (element.emoji, element.name, discovered) for element, discovered in persistence.select_elements_and_discovered() ] print( dedent( f""" let data = {json.dumps(data)}; let storage = JSON.parse(localStorage.getItem("infinite-craft-data")) || {{}}; storage.elements = storage.elements || []; const nameSet = new Set(storage.elements.map(element => element.text)); data.forEach(element => {{ let [emoji, name, discovered] = element; if (!nameSet.has(name)) {{ storage.elements.push({{ text: name, emoji: emoji, discovered: discovered }}); }} }}); localStorage.setItem("infinite-craft-data", JSON.stringify(storage)); """, ).strip(), ) if __name__ == "__main__": dump()