Phase 6
This commit is contained in:
@@ -41,7 +41,7 @@ Two primary modes toggled via toolbar:
|
||||
## Technology Stack
|
||||
|
||||
- **Backend:** Go 1.22+, single binary, `//go:embed` for frontend assets
|
||||
- **Frontend:** Svelte 5 + TypeScript + Vite; plots via uPlot (time-series) and ECharts (others); edit canvas via Konva
|
||||
- **Frontend:** Preact 10 + TypeScript; bundled by esbuild Go API (no npm/Node.js); plots via uPlot (time-series) and ECharts (others); all vendor JS/CSS checked into `web/vendor/`
|
||||
- **Config:** TOML file + `UOPI_*` env var overrides (`github.com/BurntSushi/toml`)
|
||||
- **WebSocket:** `nhooyr.io/websocket` (no CGo)
|
||||
- **EPICS:** CGo bindings to `libca`; `gopher-lua` for synthetic signal Lua scripts
|
||||
@@ -57,7 +57,10 @@ internal/datasource/# DataSource interface + EPICS + synthetic (Phases 2–3)
|
||||
internal/dsp/ # DSP functions for synthetic (Phase 3)
|
||||
internal/storage/ # interface XML persistence (Phase 6)
|
||||
internal/api/ # REST handlers (Phase 1+)
|
||||
web/ # Svelte source (npm); web/embed.go provides embed.FS to Go
|
||||
web/ # Preact/TSX source; web/embed.go provides embed.FS to Go
|
||||
web/src/ # TypeScript/TSX components (Preact)
|
||||
web/vendor/ # vendored JS/CSS (preact, uplot, echarts) — no npm required
|
||||
tools/buildfrontend/# esbuild Go API bundler (invoked by go generate)
|
||||
web/dist/ # built frontend — generated, not committed
|
||||
dist/ # compiled binary — generated, not committed
|
||||
```
|
||||
@@ -79,9 +82,6 @@ make frontend
|
||||
# Run backend (dev mode, frontend must be running separately)
|
||||
go run ./cmd/uopi
|
||||
|
||||
# Frontend dev server (proxies /api and /healthz to :8080)
|
||||
cd web && npm run dev
|
||||
|
||||
# All tests
|
||||
make test
|
||||
|
||||
@@ -90,12 +90,6 @@ go test ./internal/broker/... -run TestFanOut
|
||||
|
||||
# Go vet
|
||||
go vet ./...
|
||||
|
||||
# Svelte type check
|
||||
cd web && npm run check
|
||||
|
||||
# Svelte lint
|
||||
cd web && npm run lint
|
||||
```
|
||||
|
||||
## Key Architectural Notes
|
||||
|
||||
Reference in New Issue
Block a user