import "#presentation/records/records.barrel"; import { HEADER_ID, MAIN_ID } from "#core/ids/site.ids"; import type { Disposer } from "#types/base.types"; import { mountMenu } from "#presentation/widgets/menu.widget"; import { mountOverlay } from "#presentation/widgets/overlay.widget"; import { mountReference } from "#presentation/widgets/reference.widget"; import { observeAnimations } from "#core/observers/element.observer"; import { startRouting } from "#runtime/coordinators/route.coordinator"; const required = function required(id: string): HTMLElement { const element = document.getElementById(id); if (element === null) { throw new Error(`Missing element #${id}`); } return element; }; const start = function start(): Disposer { const disposers: Disposer[] = [ observeAnimations(document.body), mountMenu(required(HEADER_ID)), mountOverlay(), mountReference(), startRouting(required(MAIN_ID)), ]; return () => { for (const dispose of disposers) { dispose(); } }; }; void start();