Skip to content

covenix / generateTypeScriptClient

Function: generateTypeScriptClient()

generateTypeScriptClient(contract, options?): string

Defined in: src/generator/contract-client.ts:55

Generates a standalone TypeScript client from a CovenixContract. The output is a single self-contained module — types reconstructed from the contract's schema nodes plus a small inlined fetch runtime — so a frontend imports one file with no covenix dependency.

Operations are grouped by their first tag (api.users.get(...)); untagged operations sit at the client root. Each method returns the success body and throws a CovenixClientError on a non-2xx response; method.raw(...) returns a status-discriminated { status, body, headers } union (the headers is a standard Headers object) for exhaustive handling and response-header access.

Descriptions (.describe() / .meta({ description })) and operation summaries become JSDoc on interfaces, fields, and methods. By default the client is types-only; pass { validate: 'zod' } for a client that validates and parses requests/responses at runtime (and revives z.date() to Date).

Parameters

contract

The contract to generate from (e.g. from generateContract).

covenixContract

"0.1" = ...

info

{[key: string]: unknown; title: string; version: string; } = ...

info.title

string = ...

info.version

string = ...

operations

object[] = ...

schemas

Record<string, SchemaNode> = ...

options?

GenerateClientOptions = {}

Generation options (e.g. { validate: 'zod' }).

Returns

string

TypeScript source for the client module.