""" What a browser downloads before the first screen renders. ES modules load their static `import` graph up front, whether the visitor opens what it leads to or not. The Videos, Music and Photos apps, the video player, the group settings and the search page used to be part of it — about a quarter of the client, paid by a member who only opens the chat. They are now fetched the first time they are shown (lazy.js); one static import added back anywhere on the path from app.js would quietly undo that, and nothing else would fail. """ import re from pathlib import Path STATIC = Path(__file__).resolve().parents[1] / "src" / "meshbay_hub" / "static" STATIC_IMPORT = re.compile( r"""^\s*(?:import|export)\b[^'";]*?\bfrom\s*['"]\./([^'"]+)['"]""" r"""|^\s*import\s*['"]\./([^'"]+)['"]""", re.M) # Loaded on demand, never at start-up. ON_DEMAND = { "video-app.js", "music-app.js", "photos-app.js", "helloworld-app.js", "chat-app-settings.js", "video-app-settings.js", "music-app-settings.js", "photos-app-settings.js", "helloworld-app-settings.js", "video-player.js", "group-settings.js", "search-page.js", } def _eager() -> set[str]: seen, stack = set(), ["app.js"] while stack: name = stack.pop() if name in seen or not (STATIC / name).exists(): continue seen.add(name) text = (STATIC / name).read_text(encoding="utf-8") stack += [a or b for a, b in STATIC_IMPORT.findall(text)] return seen def test_the_first_download_leaves_the_apps_out(): eager = _eager() assert len(eager) > 20, "the import graph was not followed — re-read this test" brought_back = sorted(eager & ON_DEMAND) assert not brought_back, ( f"loaded at start-up again: {brought_back} — a static import on the " f"path from app.js; import it through lazy.js instead") def test_every_module_loaded_on_demand_still_exists(): """A rename would make the check above pass for a file nobody serves.""" missing = sorted(n for n in ON_DEMAND if not (STATIC / n).exists()) assert not missing, missing