Files
scoreko-electron-dev/docs/architecture.md
T

1.6 KiB

Main process architecture

Startup flow

  1. src/main/main.ts loads appConfig from config/runtime-config.ts.
  2. Installs or refreshes the packaged NodeCG runtime in user data when needed (nodecg/runtime-provisioner.ts).
  3. Creates windows (windows/window-factory.ts).
  4. In packaged builds, relaunches once after a fresh runtime install so NodeCG starts from a settled user-data runtime.
  5. Starts NodeCG with nodecg/process-manager.ts.
  6. Waits for HTTP readiness and shows loading -> main dashboard.
  7. Checks the configured Gitea latest-release endpoint for optional updates.
  8. On shutdown, runs a single graceful-stop flow to avoid orphan processes.

Main modules

  • config/runtime-config.ts: read/validate env vars.
  • nodecg/runtime-provisioner.ts: install/refresh the managed runtime in the writable user data folder and report whether it changed.
  • nodecg/process-manager.ts: start, readiness, and stop for NodeCG; install/permission/port validation.
  • updates/update-manager.ts: optional Gitea release checks, installer download, and user-controlled install.
  • updates/update-utils.ts: release version comparison and installer asset selection.
  • windows/window-factory.ts: window creation and navigation policy.
  • windows/navigation-security.ts: internal navigation allowlist and safe external schemes.
  • errors/error-presenter.ts: fatal error presentation.
  • errors/logger.ts: structured logging (info/warn/error/debug).

Principles

  • Mechanical refactors first.
  • Incremental hardening with conservative fallback.
  • Automated validation via typecheck, build, test, doctor, lint.