33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import { defineConfig } from "orval";
|
|
|
|
// Generates a typed React Query client from the host's checked-in OpenAPI document.
|
|
// Regenerate after any management-API change: `pnpm api:gen` (the Rust side regenerates
|
|
// docs/api/openapi.json via `cargo run -p punktfunk-host -- openapi`).
|
|
export default defineConfig({
|
|
punktfunk: {
|
|
input: {
|
|
target: "../docs/api/openapi.json",
|
|
},
|
|
output: {
|
|
mode: "tags-split",
|
|
target: "./src/api/gen",
|
|
schemas: "./src/api/gen/model",
|
|
client: "react-query",
|
|
clean: true,
|
|
override: {
|
|
mutator: {
|
|
path: "./src/api/fetcher.ts",
|
|
name: "apiFetch",
|
|
},
|
|
// The mutator returns the response BODY (it throws on HTTP errors), not a
|
|
// `{status,data,headers}` envelope — so a query's `.data` is the typed payload.
|
|
fetch: {
|
|
includeHttpResponseReturnType: false,
|
|
},
|
|
// No global query/mutation override: orval picks `useQuery` for GET and
|
|
// `useMutation` for POST/DELETE by HTTP method, which is what the pages expect.
|
|
},
|
|
},
|
|
},
|
|
});
|