Skip to content

Commit 1d73198

Browse files
committed
docs: update docs for swagger codegen
1 parent f9e03dc commit 1d73198

File tree

2 files changed

+96
-12
lines changed

2 files changed

+96
-12
lines changed

docs/introduction/getting-started.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ title: Getting started
1616
npm install @tanstack/query-core {packageJson.name}
1717
```
1818

19-
```bash [yarn]
20-
yarn add @tanstack/query-core {packageJson.name}
21-
```
22-
2319
```bash [pnpm]
2420
pnpm add @tanstack/query-core {packageJson.name}
2521
```
2622

23+
```bash [yarn]
24+
yarn add @tanstack/query-core {packageJson.name}
25+
```
26+
2727
:::
2828

2929
## React Integration

docs/other/swagger-codegen.md

Lines changed: 92 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ This is not production ready.
2323
npm install mobx-tanstack-query-api
2424
```
2525

26-
```bash [yarn]
27-
yarn add mobx-tanstack-query-api
28-
```
29-
3026
```bash [pnpm]
3127
pnpm add mobx-tanstack-query-api
3228
```
3329

30+
```bash [yarn]
31+
yarn add mobx-tanstack-query-api
32+
```
33+
3434
:::
3535

3636

@@ -74,14 +74,98 @@ export default defineConfig({
7474
...
7575
"scripts": {
7676
...
77-
"api-codegen": "mobx-tanstack-query-api"
77+
"dev:api-codegen": "mobx-tanstack-query-api"
7878
...
7979
}
8080
...
8181
```
8282

83-
#### Run
83+
#### Run codegen
84+
85+
::: code-group
86+
87+
```bash [npm]
88+
npm run dev:api-codegen
89+
```
90+
91+
```bash [pnpm]
92+
pnpm dev:api-codegen
93+
```
94+
95+
```bash [yarn]
96+
yarn dev:api-codegen
97+
```
98+
99+
:::
100+
101+
#### Use queries and mutations
102+
103+
```ts
104+
import {
105+
getFruits,
106+
createFruit,
107+
Tag,
108+
} from "@/shared/api/__generated__";
109+
110+
export const fruitsQuery = getFruits.toQuery({
111+
enableOnDemand: true,
112+
params: {},
113+
})
114+
115+
export const fruitCreateMutation = createFruit.toMutation({
116+
invalidateEndpoints: {
117+
tag: [Tag.Fruits]
118+
}
119+
})
120+
```
121+
122+
Another example with classes
123+
124+
```ts
125+
import { getFruits } from "@/shared/api/__generated__";
126+
127+
export class Fruits {
128+
private abortController = new AbortController();
129+
130+
@observable
131+
accessor private params = {
132+
search: ''
133+
}
134+
135+
private fruitsQuery = getFruits.toQuery({
136+
abortSignal: this.abortController.signal,
137+
enableOnDemand: true,
138+
params: () => ({
139+
query: {
140+
search: this.params.search
141+
}
142+
}),
143+
})
144+
145+
constructor(abortSignal?: AbortSignal) {
146+
// or you can use linked-abort-controller package
147+
abortSignal.addEventListener('abort', () => {
148+
this.abortController.abort();
149+
})
150+
}
151+
152+
@computed.struct
153+
get data() {
154+
return this.fruitsQuery.result.data || [];
155+
}
156+
157+
@computed.struct
158+
get isLoading() {
159+
return this.fruitsQuery.result.isLoading
160+
}
161+
162+
destroy() {
163+
this.abortController.abort();
164+
}
165+
}
166+
167+
168+
const fruits = new FruitsModel();
84169

85-
```bash
86-
npm run api-codegen
170+
console.log(fruits.data); // enable query
87171
```

0 commit comments

Comments
 (0)