@xemahq/api-client-generator
v0.1.2
Published
Layer 1 — the single, central OpenAPI + ORVAL client generator for every Xema NestJS service. Replaces the per-service orval.config.ts / scripts/extract-openapi.ts / scripts/build-client-index.js trio with two bins (xema-openapi, xema-client-generate). Ex
Readme
@xemahq/api-client-generator
Central OpenAPI + Orval client generator for Xema services.
Overview
The single, shared generator that produces typed API clients for every Xema
NestJS service. It extracts one OpenAPI document per API surface
(public / internal / operator) from decorator metadata, then generates one
Orval client package per non-empty surface, each sharing the owning service's
version. Provenance metadata is stamped deterministically into every generated
client's package.json. A route ships in a surface only when it — or its
controller — is explicitly classified; there is no heuristic inference.
When to use it
- Use it to extract a service's OpenAPI document and generate its client packages instead of maintaining per-service generator scripts.
- Reach for the
xema-openapiandxema-client-generatebins to wire client generation into a service's build.
Installation
pnpm add -D @xemahq/api-client-generatorUsage
# Extract one OpenAPI document per classified API surface:
xema-openapi
# Generate one Orval client package per non-empty surface:
xema-client-generatePeer requirements
@nestjs/common,@nestjs/core,@nestjs/swagger,@nestjs/testing— the service is bootstrapped to read its route metadata.@xemahq/xema-decorators— supplies the API-surface classification metadata.orval— drives client code generation.reflect-metadata,ts-node,tsconfig-paths,typescript— runtime and TypeScript toolchain for extraction.
License
Apache-2.0 © Xema — xema.dev
