https://github.com/orval-labs/orval
orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺
https://github.com/orval-labs/orval
angular axios-client codegen faker mock msw openapi-specification orval react react-query swagger typescript
Last synced: about 10 hours ago
JSON representation
orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺
- Host: GitHub
- URL: https://github.com/orval-labs/orval
- Owner: orval-labs
- License: mit
- Created: 2020-02-05T08:31:50.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-05-02T13:24:48.000Z (10 months ago)
- Last Synced: 2025-05-06T20:19:39.877Z (10 months ago)
- Topics: angular, axios-client, codegen, faker, mock, msw, openapi-specification, orval, react, react-query, swagger, typescript
- Language: TypeScript
- Homepage: https://orval.dev
- Size: 13.7 MB
- Stars: 3,923
- Watchers: 12
- Forks: 397
- Open Issues: 145
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- toolsdk-mcp-registry - ❌ @orval/mcp - signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats.Generate, valid, cache and mock in your React, Vue, Svelte and Angular applications all with your OpenAPI specification. (node) (Developer Tools / How to Submit)
- fucking-awesome-angular - orval - Generate, validate, cache and mock in your frontend applications, based on your OpenAPI specification. (Development Utilities / Generators and Scaffolding)
- awesome-angular - orval - Generate, validate, cache and mock in your frontend applications, based on your OpenAPI specification. (Development Utilities / Generators and Scaffolding)
README
[](https://badge.fury.io/js/orval)

[](https://opensource.org/licenses/MIT)
[](https://github.com/orval-labs/orval/actions/workflows/tests.yaml)
[](https://snyk.io/advisor/npm-package/orval)
[](https://gurubase.io/g/orval)
Generate Typescript clients from OpenAPI specification!
### Code Generation
`orval` generates type-safe JS clients (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in `yaml` or `json` formats.
> [!IMPORTANT]
> Version [8.0.0+](https://orval.dev/docs/versions/v8) comes with a lot of improvements and changes please see the [Migration Guide](https://orval.dev/docs/versions/v8)
### Supported clients
`generate` models, requests, hooks, [mocks](https://mswjs.io/) and more, for these supported clients:
- [React](https://react.dev/)
- [React Query](https://tanstack.com/query/latest/docs/framework/react/overview)
- [React with swr](https://swr.vercel.app/)
- [Vue Query](https://tanstack.com/query/latest/docs/framework/vue/overview)
- [Svelte Query](https://tanstack.com/query/latest/docs/framework/svelte/overview)
- [Solid Query](https://tanstack.com/query/latest/docs/framework/solid/overview)
- [SolidStart](https://start.solidjs.com/)
- [Angular](https://angular.dev/)
- [Angular Query](https://tanstack.com/query/latest/docs/framework/angular/overview)
- [Hono](https://hono.dev/)
- [zod](https://zod.dev/)
- [native fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)
- [mcp](https://modelcontextprotocol.io/introduction)
### Samples
You can find some samples below:
- [react app](https://github.com/orval-labs/orval/tree/master/samples/react-app)
- [react query](https://github.com/orval-labs/orval/tree/master/samples/react-query)
- [svelte query](https://github.com/orval-labs/orval/tree/master/samples/svelte-query)
- [vue query](https://github.com/orval-labs/orval/tree/master/samples/vue-query)
- [solid query](https://github.com/orval-labs/orval/tree/master/samples/solid-query)
- [solid start](https://github.com/orval-labs/orval/tree/master/samples/solid-start)
- [react app with swr](https://github.com/orval-labs/orval/tree/master/samples/react-app-with-swr)
- [angular app](https://github.com/orval-labs/orval/tree/master/samples/angular-app)
- [angular query](https://github.com/orval-labs/orval/tree/master/samples/angular-query)
- [hono](https://github.com/orval-labs/orval/tree/master/samples/hono)
- [next app with fetch](https://github.com/orval-labs/orval/tree/master/samples/next-app-with-fetch)
- [mcp server](https://github.com/orval-labs/orval/tree/master/samples/mcp)
### Playground
Try Orval out for yourself using our [Playground](https://orval.dev/playground) application!
## Developers
This project uses [Yarn](https://yarnpkg.com/) for package management and building. Yarn [install guide](https://yarnpkg.com/getting-started/install).
### Build Scripts
- **`yarn nuke:all`** - Completely clean your workspace by removing all build artifacts, node_modules, and cached files. Use this when you want to start fresh.
- **`yarn build`** - Build the project and make changes available to the workspace. Run this after making code changes to compile TypeScript and prepare the project for use.
### Test Scripts
- **`yarn test`** - Run unit tests in all packages.
- **`yarn update-samples`** - Generate sample outputs using the newly built version of Orval. This regenerates the sample code based on the current build.
- **`yarn test:samples`** - Run tests in the samples directory using the newly generated output from `update-samples`.
- **`yarn test:snapshots`** - Run snapshot tests to verify generated sample outputs match the committed snapshots. Fails if any generated file differs from its snapshot.
- **`yarn test:snapshots:update`** - Regenerate snapshot files to match the current generated output. Run this after `yarn update-samples` when the generated output has intentionally changed.
- **`yarn test:cli`** - Test that the generated output (not samples) is valid TypeScript. This validates the TypeScript compilation of the generated code.
### Development Workflow
A typical development workflow would be:
1. Make your code changes
2. Run `yarn build` to compile your changes
3. Run `yarn lint` to catch lint issues early
4. Run `yarn test` to run unit tests in packages
5. Run `yarn test:snapshots` to verify generated output matches snapshots
If step 5 fails because the generated output has intentionally changed, run `yarn test:snapshots:update` to update the snapshots.
If you encounter issues or want to start completely fresh:
1. Run `yarn nuke:all` to clean everything
2. Reinstall dependencies and rebuild from scratch
## Sponsors
Thank you to all our sponsors! 🍻
Support orval development by [Open Collective](https://opencollective.com/orval) and your logo will be displayed here with a link to your website.
## Backers
Thank you to all our backers! 🙏
Support us with a one-time donation and help us continue our activities on [Open Collective](https://opencollective.com/orval).
**Note:** After becoming a sponsor or backer, please contact us on [Discord](https://discord.gg/6fC2sjDU7w) to upload your logo.
## Star History
### All Thanks To Our Contributors: