Skip to content

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:

pages/example/index.tsx
ts
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.

Released under the MIT License.