When you define an API route with typed parameters, payloads, and responses, KosmoJS generates a corresponding fetch client - automatically, as part of the same build step.
The result is a fully-typed client that mirrors your route definition exactly. Parameters, payload shape, response type - all derived from the same source. Change your API, and the client updates with it. No manual sync required.
π€ What Gets Generated β
Each route's client module exports:
πΉ HTTP method functions - GET, POST, PUT, etc., accepting parameters and payloads typed to match your route definition and returning typed response promises. (Details β )
πΉ path and href utilities - construct relative or absolute URLs with proper parameter substitution and optional query string support. (Details β )
πΉ validationSchemas - the same schemas used for server-side validation, exposed for client-side form validation with check, errors, errorMessage, errorSummary, and validate methods. (Details β )
ποΈ Using the Generated Client β
Import the fetch map and pick the client for your route by path:
import fetchClients from "_/fetch";
const response = await fetchClients["users/[id]"].GET([123]);The generator places its output in the lib directory alongside other generated artifacts (validation routines, OpenAPI spec). Everything is updated automatically in the background as you modify routes during development.