51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
|
|
/**
|
||
|
|
* orval configuration — OpenAPI client generation for Veza frontend.
|
||
|
|
*
|
||
|
|
* v1.0.8 Phase 1 (B1). Generates typed Axios services + React Query hooks
|
||
|
|
* from `veza-backend-api/openapi.yaml` (produced by swaggo). Output lives
|
||
|
|
* alongside hand-written services during the migration, then supersedes
|
||
|
|
* them in Phase 3.
|
||
|
|
*
|
||
|
|
* Design choices (cf. /home/senke/.claude/plans/audit-fonctionnel-wild-hickey.md D8):
|
||
|
|
* - client: 'react-query' → emits hooks directly (useXxx / useXxxMutation)
|
||
|
|
* - mode: 'tags-split' → one folder per `@Tags` → smaller bundles + easier diff
|
||
|
|
* - mutator: './src/services/api/orval-mutator.ts' vezaMutator
|
||
|
|
* Routes every generated call through the existing Axios instance so
|
||
|
|
* auth / retry / CSRF / offline-queue interceptors keep applying.
|
||
|
|
* - mock: false → MSW handlers stay manual (endpoint-shape
|
||
|
|
* matching, not spec-schema matching). Phase 2
|
||
|
|
* may revisit once drift is eliminated.
|
||
|
|
*
|
||
|
|
* Run: npx orval --config orval.config.ts
|
||
|
|
* Or: npm run generate:types (check-types-sync.sh → scripts/generate-types.sh)
|
||
|
|
*/
|
||
|
|
import { defineConfig } from 'orval';
|
||
|
|
|
||
|
|
export default defineConfig({
|
||
|
|
veza: {
|
||
|
|
input: {
|
||
|
|
target: '../../veza-backend-api/openapi.yaml',
|
||
|
|
},
|
||
|
|
output: {
|
||
|
|
target: 'src/services/generated/veza.ts',
|
||
|
|
schemas: 'src/services/generated/model',
|
||
|
|
client: 'react-query',
|
||
|
|
mode: 'tags-split',
|
||
|
|
mock: false,
|
||
|
|
prettier: true,
|
||
|
|
clean: true,
|
||
|
|
override: {
|
||
|
|
mutator: {
|
||
|
|
path: './src/services/api/orval-mutator.ts',
|
||
|
|
name: 'vezaMutator',
|
||
|
|
},
|
||
|
|
query: {
|
||
|
|
useQuery: true,
|
||
|
|
useMutation: true,
|
||
|
|
signal: true,
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
},
|
||
|
|
});
|