No description
- Vue 72%
- TypeScript 25.6%
- CSS 2.3%
| src | ||
| tests/unit | ||
| types | ||
| .gitignore | ||
| bun.lock | ||
| env.d.ts | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
edge-connect-ui
Standalone Vue 3 + PrimeVue single-page application for the Edge Connect portal.
Extracted from edge-connect-portal-poc, this UI now builds independently and
talks to the Edge Connect BFF (Hono on Bun) over HTTP.
Stack
- Vite + Vue 3 (
<script setup>) - vue-router (history mode)
- PrimeVue 4 (
theme: "none") + Tailwind v4 design tokens unplugin-auto-import+unplugin-vue-componentsreproduce the former Nuxt auto-import / auto-registration ergonomics, so ported pages need no churn.
Develop
bun install
bun run dev # http://localhost:5173
The dev server proxies /bff and /doc to the BFF. Point it at your BFF with:
VITE_BFF_ORIGIN=http://localhost:3000 bun run dev
Run the Edge Connect BFF (Hono on Bun) separately from the
edge-connect-portal-poc repo (bun run dev), then start this UI against it.
Build
bun run build # vite build → dist/
bun run preview # serve the production build
bun run typecheck # vue-tsc --noEmit
Layout
src/pages/— routed views (mapped explicitly insrc/router)src/layouts/—DefaultLayout(sidebar) andAuthLayout(registration)src/components/— auto-registered with directory namespacing (components/fleet/FleetsTab.vue→<FleetFleetsTab>)src/composables/— auto-imported (useOrgFetch,useAuthUser, ...)src/utils/— auto-imported helpers (orgInitials,statusDot, ...)src/runtime/— Nuxt-compatibility layer ($fetch,useFetch,navigateTo,definePageMeta)types/— shared DTO / KRM types consumed via the~~/types/*alias
BFF contract
All data calls hit /bff/* (e.g. /bff/me, /bff/resources). Org-scoped
routes send an X-Workspace: default header via useOrgFetch. The org is
derived server-side from the per-tenant subdomain.