1.1.2 • Published 6 months ago
@otqs/core v1.1.2
OpenAPI Generator for Tanstack Query with Solid Integration
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
otqs.config.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:
import Axios, { AxiosError, AxiosRequestConfig } from 'axios';
export const AXIOS_INSTANCE = Axios.create({ baseURL: '' });
export const customInstance = <T>(config: AxiosRequestConfig): Promise<T> => {
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<Error> extends AxiosError<Error> {}Usage
Command for generate open-api sdk:
otqs