{"library":"orval","title":"Orval OpenAPI TypeScript Client Generator","description":"Orval is a robust TypeScript client generator for OpenAPI/Swagger specifications, designed to automate the creation of type-safe API clients. It supports generating clients with various data fetching libraries, including React Query, Svelte Query, Axios, and Fetch, and can also generate mock data using Faker.js. The current stable version is 8.8.0, with minor and patch releases occurring frequently to incorporate new features (like `useSetQueryData` helpers), address bugs, and maintain compatibility with evolving ecosystem standards. Orval distinguishes itself through extensive customization options via its configuration file, allowing developers to precisely tailor the generated output for specific frameworks and architectural patterns, and by deeply integrating with OpenAPI schema validation and TypeScript type checking workflows to ensure high-quality, maintainable code.","language":"javascript","status":"active","last_verified":"Sun Apr 19","install":{"commands":["npm install orval"],"cli":{"name":"orval","version":null}},"imports":["import { defineConfig } from 'orval';","import type { OrvalConfig } from 'orval';","import type { HooksOptions } from 'orval';"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { defineConfig } from 'orval';\n\nexport default defineConfig({\n  petstore: {\n    input: 'https://petstore.swagger.io/v2/swagger.json',\n    output: {\n      mode: 'split',\n      target: 'src/api/endpoints/petstore.ts',\n      schemas: 'src/api/model',\n      client: 'react-query', // or 'axios', 'fetch', 'svelte-query', 'vue-query'\n      mock: true,\n      clean: true,\n      override: {\n        mutator: {\n          path: './src/api/mutator/custom-instance.ts',\n          name: 'customInstance',\n        },\n        operations: {\n          listPets: {\n            mutation: true,\n            query: true,\n          },\n        },\n      },\n    },\n    hooks: {\n      afterAllFilesWrite: 'prettier --write',\n    },\n  },\n});\n\n// src/api/mutator/custom-instance.ts\nimport Axios, { AxiosRequestConfig } from 'axios';\n\nexport const AXIOS_INSTANCE = Axios.create({ baseURL: 'https://petstore.swagger.io/v2' });\n\nexport const customInstance = <T>(config: AxiosRequestConfig, options?: AxiosRequestConfig): Promise<T> => {\n  return AXIOS_INSTANCE({ ...config, ...options }).then((res) => res.data);\n};\n\nexport default customInstance;\n\n// package.json (scripts)\n// {\n//   \"scripts\": {\n//     \"generate-api\": \"orval\"\n//   }\n// }\n//\n// To run: `npm run generate-api` or `npx orval`","lang":"typescript","description":"Demonstrates a basic Orval configuration for generating a React Query client with mock data and a custom Axios mutator, then how to run it via an npm script.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}