https://github.com/andrejnemec/openapi-tanstack-query-solid
Enhanced fork of Orval, this tool generates Tanstack Query hooks from OpenAPI specs only with Solid framework integration.
https://github.com/andrejnemec/openapi-tanstack-query-solid
axios open-api solid solidjs tanstack-query tanstack-solid-query typescript
Last synced: 4 months ago
JSON representation
Enhanced fork of Orval, this tool generates Tanstack Query hooks from OpenAPI specs only with Solid framework integration.
- Host: GitHub
- URL: https://github.com/andrejnemec/openapi-tanstack-query-solid
- Owner: AndrejNemec
- License: mit
- Created: 2023-11-21T00:12:44.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-11-21T12:58:23.000Z (about 2 years ago)
- Last Synced: 2025-01-06T10:49:15.609Z (about 1 year ago)
- Topics: axios, open-api, solid, solidjs, tanstack-query, tanstack-solid-query, typescript
- Language: TypeScript
- Homepage:
- Size: 320 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://badge.fury.io/js/otqs)
[](https://opensource.org/licenses/MIT)
## OpenAPI Generator for Tanstack Query with Solid Integration
This project is fork of orval.dev.
### Code Generation
`otqs` 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.
`Generate`, `valid`, `cache` and `mock` in your SolidJS applications all with your OpenAPI specification.
---
### Installation
#### For @tanstack/solid-query >= v5.71.9
- **NPM:** `npm install otqs@latest`
- **YARN:** `yarn add otqs@latest`
- **PNPM:** `pnpm install otqs@latest`
#### For @tanstack/solid-query >= v5.0.0 and < v5.71.9
- **NPM:** `npm install otqs@1.0.0`
- **YARN:** `yarn add otqs@1.0.0`
- **PNPM:** `pnpm install otqs@1.0.0`
---
### Configuration
#### **This package generates code that depends on the following packages:**
- **NPM:** `npm install axios @tanstack/solid-query solid-js`
- **YARN:** `yarn add axios @tanstack/solid-query solid-js`
- **PNPM:** `pnpm install axios @tanstack/solid-query solid-js`
**More details:** [solid-query](https://github.com/AndrejNemec/openapi-tanstack-query-solid/tree/master/apps/solid-query-basic-app)
**otqs.config.ts**:
```ts
import { defineConfig } from 'otqs';
export default defineConfig({
petstore: {
output: {
mode: 'split',
target: 'src/api/endpoints/petstore-endpoints.ts',
schemas: 'src/api/model',
client: 'solid-query',
mock: true,
prettier: true,
override: {
//Optional
mutator: {
path: './src/api/mutator/custom-instance.ts',
name: 'customInstance',
},
operations: {
listPets: {
query: {
useQuery: true,
useInfinite: true,
useInfiniteQueryParam: 'limit',
},
},
},
},
},
input: {
target: './petstore.yaml', //or json format
},
},
});
```
**custom-instance.ts**:
```ts
import Axios, { AxiosError, AxiosRequestConfig } from 'axios';
export const AXIOS_INSTANCE = Axios.create({ baseURL: '' });
export const customInstance = (config: AxiosRequestConfig): Promise => {
const source = Axios.CancelToken.source();
const promise = AXIOS_INSTANCE({ ...config, cancelToken: source.token }).then(
({ data }) => data,
);
// @ts-ignore
promise.cancel = () => {
source.cancel('Query was cancelled by Vue Query');
};
return promise;
};
export default customInstance;
export interface ErrorType extends AxiosError {}
```
---
### Usage
Command for generate open-api sdk:
```bash
otqs
```
---
### Example
- [solid-query](https://github.com/AndrejNemec/openapi-tanstack-query-solid/tree/master/apps/solid-query-basic-app)