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: 9 days 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 (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-05-02T13:24:48.000Z (7 months ago)
- Last Synced: 2025-05-06T20:19:39.877Z (7 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
- 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)
- 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)
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)
Visit orval.dev for docs, guides, API and beer!
⚠️ Actively searching for contributors, if you want to help, please contact me on [discord](https://discord.gg/6fC2sjDU7w) ⚠️
### Code Generation
`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.
### 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)
- [Angular](https://angular.dev/)
- [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)
- [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)
- [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. Here are the key scripts available for development:
### Prerequisites
Before using Yarn scripts, ensure you have Yarn installed. You can install it globally using npm:
```bash
npm install -g yarn
```
Alternatively, you can enable Corepack (which comes with Node.js 16.10+) to manage Yarn:
```bash
corepack enable
```
### 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: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 test` to ensure unit tests pass
4. Run `yarn update-samples` to regenerate sample outputs
5. Run `yarn test:samples` to verify samples work correctly
6. Run `yarn test:cli` to validate TypeScript compilation
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
## Star History
### All Thanks To Our Contributors: