lilith-platform.live/codebase/@packages/@quinn/api-client/README.md
2026-04-18 19:25:55 -07:00

37 lines
1.3 KiB
Markdown

# @lilith/quinn-api-client
Type-safe HTTP client for the `quinn.api` public surface.
## Base URL resolution
1. `import.meta.env.VITE_QUINN_API_BASE_URL` (Vite env override)
2. `localhost` / `127.0.0.1``http://localhost:3040`
3. Otherwise → `https://api.quinn.apricot.local`
## Exports
### Types
`BlogPostSummary`, `BlogPost`, `ContactChannel`, `ContactPayload`, `ContactResult`, `TouringPayload`, `TouringResult`, `TrackAvailability`, `RosterApplicationPayload`, `RosterApplicationResult`, `AnalyticsEventPayload`
### Error classes
`ApiError`, `NotFoundError`, `RateLimitError`, `ValidationError`, `NetworkError`
### Endpoints
| Function | Method | Path |
|---|---|---|
| `fetchBlogPosts()` | GET | `/www/blog` |
| `fetchBlogPost(slug)` | GET | `/www/blog/:slug` |
| `submitContact(payload)` | POST | `/public/contact` |
| `subscribeToTouring(payload)` | POST | `/public/touring/subscribe` |
| `fetchAvailability()` | GET | `/public/roster/availability` |
| `fetchAvailabilityBySlug(slug)` | GET | `/public/roster/availability/:slug` |
| `submitRosterApplication(payload)` | POST | `/public/roster/apply` |
| `trackEvent(path, payload)` | POST | `/public/analytics/track/*` (fire-and-forget) |
### Low-level
`apiFetch<T>(url, init?)` — typed fetch with automatic error mapping
`resolveBaseUrl()` — base URL resolution