@studio-vaai/js-client
v0.1.3
Published
TypeScript contract types for the studio vaai public HTTP API, plus an optional fetch-based transport (Hey API codegen under src/impl/generated).
Downloads
684
Readme
@studio-vaai/js-client
TypeScript client for the studio vaai virtual try-on HTTP API.
This package is the public contract: request/response types, the StudioVaaiClient
interface, and a ready-to-use fetch-based transport. It runs in both the browser and Node.
Install
npm install @studio-vaai/js-clientUsage
import { createFetchStudioVaaiClient } from "@studio-vaai/js-client";
const client = createFetchStudioVaaiClient({
baseUrl: "https://api.studio-vaai.com",
clientApiKey: "your-client-api-key",
});
const result = await client.session.createSession({
/* … */
});client implements StudioVaaiClient, with one namespace per API area:
| Namespace | Methods |
| ---------------- | -------------------------------------------------------------------- |
| client.meta | checkHealth |
| client.session | createSession, getSession, refreshSession, invalidateSession |
| client.body | listBodies, getBody, createBody, calibrateBodyHeight |
| client.tryOn | createTryOn, getTryOn, getRecommendedSize |
Results and errors
Methods return an ApiResult<T> — a discriminated union you inspect, rather than a value
that throws:
const result = await client.body.getBody({
/* … */
});
if (result.ok) {
result.data; // typed payload
} else {
result.error; // StandardError — kind, message, details
}ApiFailureError carries an ApiFailure payload for the cases where a failure is thrown
rather than returned.
Versioning
Every request carries an X-Client-Version header so the server can match the contract.
The value is a constant you can read:
import { API_VERSION, CLIENT_VERSION_HEADER_VALUE } from "@studio-vaai/js-client";API_VERSION is a calendar-style contract date, independent of this package's npm version.
License
MIT
