[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79854":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":16,"starSnapshotCount":16,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},79854,"orval","orval-labs\u002Forval","orval-labs","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. 🍺",null,"https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval","TypeScript",6110,627,13,64,0,45,86,141,135,39.39,false,"main",[5,25,26,27,28,29,30,31,32,33,34,35],"axios-client","swagger","typescript","openapi-specification","react","angular","msw","mock","faker","codegen","react-query","2026-06-12 02:03:54","[![npm version](https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Forval.svg)](https:\u002F\u002Fbadge.fury.io\u002Fjs\u002Forval)\n![NPM Downloads](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Forval?color=purple)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Gurubase](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGurubase-Ask%20Orval%20Guru-006BFF)](https:\u002F\u002Fgurubase.io\u002Fg\u002Forval)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Flogo\u002Forval-logo-horizontal.svg?raw=true\" width=\"500\" height=\"160\" alt=\"orval - Restfull Client Generator\" \u002F>\n\u003C\u002Fp>\n\u003Ch1 align=\"center\">\n  Generate Typescript clients from OpenAPI specification!\n\u003C\u002Fh1>\n\n### Code Generation\n\n`orval` generates type-safe JS clients (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in `yaml` or `json` formats.\n\n> [!IMPORTANT]\n> Version [8.0.0+](https:\u002F\u002Forval.dev\u002Fdocs\u002Fversions\u002Fv8) comes with a lot of improvements and changes please see the [Migration Guide](https:\u002F\u002Forval.dev\u002Fdocs\u002Fversions\u002Fv8)\n\n### Supported clients\n\n`generate` models, requests, hooks, [mocks](https:\u002F\u002Fmswjs.io\u002F) and more, for these supported clients:\n\n- [React](https:\u002F\u002Freact.dev\u002F)\n- [React Query](https:\u002F\u002Ftanstack.com\u002Fquery\u002Flatest\u002Fdocs\u002Fframework\u002Freact\u002Foverview)\n- [React with swr](https:\u002F\u002Fswr.vercel.app\u002F)\n- [Vue Query](https:\u002F\u002Ftanstack.com\u002Fquery\u002Flatest\u002Fdocs\u002Fframework\u002Fvue\u002Foverview)\n- [Svelte Query](https:\u002F\u002Ftanstack.com\u002Fquery\u002Flatest\u002Fdocs\u002Fframework\u002Fsvelte\u002Foverview)\n- [Solid Query](https:\u002F\u002Ftanstack.com\u002Fquery\u002Flatest\u002Fdocs\u002Fframework\u002Fsolid\u002Foverview)\n- [SolidStart](https:\u002F\u002Fstart.solidjs.com\u002F)\n- [Angular](https:\u002F\u002Fangular.dev\u002F)\n- [Angular Query](https:\u002F\u002Ftanstack.com\u002Fquery\u002Flatest\u002Fdocs\u002Fframework\u002Fangular\u002Foverview)\n- [Hono](https:\u002F\u002Fhono.dev\u002F)\n- [zod](https:\u002F\u002Fzod.dev\u002F)\n- [Effect](https:\u002F\u002Feffect.website\u002F)\n- [native fetch](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FFetch_API)\n- [mcp](https:\u002F\u002Fmodelcontextprotocol.io\u002Fintroduction)\n\n### Samples\n\nYou can find some samples below:\n\n- [react app](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Freact-app)\n- [react query](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Freact-query)\n- [svelte query](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fsvelte-query)\n- [vue query](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fvue-query)\n- [solid query](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fsolid-query)\n- [solid start](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fsolid-start)\n- [react app with swr](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Freact-app-with-swr)\n- [angular app](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fangular-app)\n- [angular query](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fangular-query)\n- [hono](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fhono)\n- [swr with effect](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fswr-with-effect)\n- [next app with fetch](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fnext-app-with-fetch)\n- [mcp server](https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Ftree\u002Fmaster\u002Fsamples\u002Fmcp)\n\n### Playground\n\nTry Orval out for yourself using our [Playground](https:\u002F\u002Forval.dev\u002Fplayground) application!\n\n## A note about AI\n\nFirst of all, we do not reject the use of AI agents outright. That said, please do not submit AI-generated output in a PR without reviewing it yourself. Every change must have a clear intent and purpose — do not submit changes you cannot explain in your own words. Making the effort to understand orval's codebase, TypeScript, and API clients beforehand, and reviewing what AI produces, is the contributor's responsibility, not the reviewer's. Finally, we will continue to welcome new contributors and actively support you through review and iteration.\n\nSee [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) for details.\n\n## Developers\n\nThis project uses [Bun](https:\u002F\u002Fbun.sh\u002F) for package management and building. Bun [install guide](https:\u002F\u002Fbun.sh\u002Fdocs\u002Finstallation).\n\n### Build Scripts\n\n- **`bun run nuke:all`** - Completely clean your workspace by removing all build artifacts, node_modules, and cached files. Use this when you want to start fresh.\n\n- **`bun run 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.\n\n- **`bun run typecheck`** - Run TypeScript type checking across all packages.\n\n### Test Scripts\n\n- **`bun run test`** - Run unit tests in all packages.\n\n- **`bun run update-samples`** - Generate sample outputs using the newly built version of Orval. This regenerates the sample code based on the current build.\n\n- **`bun run test:samples`** - Run tests in the samples directory using the newly generated output from `update-samples`.\n\n- **`bun run test:snapshots`** - Run snapshot tests to verify generated sample outputs match the committed snapshots. Fails if any generated file differs from its snapshot.\n\n- **`bun run test:snapshots:update`** - Regenerate snapshot files to match the current generated output. Run this after `bun run update-samples` when the generated output has intentionally changed.\n\n- **`bun run test:cli`** - Test that the generated output (not samples) is valid TypeScript. This validates the TypeScript compilation of the generated code.\n\n### Development Workflow\n\nA typical development workflow would be:\n\n1. Make your code changes\n2. Run `bun run build` to compile your changes\n3. Run `bun run typecheck` to verify package typings\n4. Run `bun run lint` to catch lint issues early\n5. Run `bun run test` to run unit tests in packages\n6. Run `bun run test:snapshots` to verify generated output matches snapshots\n\nIf step 6 fails because the generated output has intentionally changed, run `bun run test:snapshots:update` to update the snapshots.\n\nIf you encounter issues or want to start completely fresh:\n\n1. Run `bun run nuke:all` to clean everything\n2. Reinstall dependencies and rebuild from scratch\n\n## Sponsors\n\nThank you to all our sponsors! 🍻\n\nSupport orval development by [Open Collective](https:\u002F\u002Fopencollective.com\u002Forval) and your logo will be displayed here with a link to your website.\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Forval\">\n  \u003Cimg src=\"https:\u002F\u002Forval.dev\u002Fimages\u002Forval-logo-horizontal.svg?raw=true\" width=\"300\" alt=\"Become a sponsor\" \u002F>\n\u003C\u002Fa>\n\n## Backers\n\nThank you to all our backers! 🙏\n\nSupport us with a one-time donation and help us continue our activities on [Open Collective](https:\u002F\u002Fopencollective.com\u002Forval).\n\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Forval\">\n  \u003Cimg src=\"https:\u002F\u002Forval.dev\u002Fimages\u002Femblem.svg\" width=\"50\" height=\"50\" alt=\"Backer\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Forval\">\n  \u003Cimg src=\"https:\u002F\u002Forval.dev\u002Fimages\u002Femblem.svg\" width=\"50\" height=\"50\" alt=\"Backer\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Forval\">\n  \u003Cimg src=\"https:\u002F\u002Forval.dev\u002Fimages\u002Femblem.svg\" width=\"50\" height=\"50\" alt=\"Backer\" \u002F>\n\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftatsuya-asami\">\n  \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ftatsuya-asami.png\" width=\"50\" height=\"50\" alt=\"tatsuya-asami\" \u002F>\n\u003C\u002Fa>\n\n**Note:** After becoming a sponsor or backer, please contact us on [Discord](https:\u002F\u002Fdiscord.gg\u002F6fC2sjDU7w) to upload your logo.\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#orval-labs\u002Forval&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=orval-labs\u002Forval&type=Date&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=orval-labs\u002Forval&type=Date\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=orval-labs\u002Forval&type=Date\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n### All Thanks To Our Contributors:\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Forval-labs\u002Forval\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=anymaniax\u002Forval\" \u002F>\n\u003C\u002Fa>\n","orval 是一个能够从任何有效的 OpenAPI v3 或 Swagger v2 规范（无论是 yaml 还是 json 格式）生成带有适当类型签名的 TypeScript 客户端的工具。其核心功能包括自动生成类型安全的客户端代码，支持多种前端框架如 React、Angular 等，并且可以生成模型、请求、钩子及模拟数据等。此外，orval 支持使用 msw 与 faker 来创建模拟 API 响应，有助于开发和测试阶段。适用于需要根据 RESTful API 规范快速搭建类型安全客户端的应用场景中，特别适合于现代 JavaScript 应用程序的开发流程。",2,"2026-06-11 03:58:20","trending"]