Skip to content

Commit b97044f

Browse files
rajzikjan.silhanfabien0102
authored
feat!: Use query option pattern and support useSuspense (#263)
* breaking change: Change query operation to object; Update generate query components to use query function; Add suspense query to the generation; Update context * fixes * fix camel case difference from 'case' and 'lodash' * revert name change * revert context name * fix tests * small fixes * Update context template with the correct types --------- Co-authored-by: jan.silhan <[email protected]> Co-authored-by: Fabien Bernard <[email protected]>
1 parent 88e09cc commit b97044f

File tree

7 files changed

+452
-295
lines changed

7 files changed

+452
-295
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/typescript/README.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
Collection of typescript generators & utils
44

5-
## Options
6-
7-
### generateSuspenseQueries
8-
9-
Generate `useSuspenseQuery` wrapper along side `useQuery`.
10-
115
## Generators
126

137
### generateSchemaType

plugins/typescript/src/core/createOperationQueryFnNodes.ts

Lines changed: 101 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -152,130 +152,125 @@ export const createOperationQueryFnNodes = ({
152152
undefined
153153
),
154154
],
155-
f.createTypeReferenceNode(f.createIdentifier("Promise"), [dataType])
155+
f.createTypeReferenceNode(f.createIdentifier("Promise"), [
156+
dataType,
157+
])
156158
)
157159
),
158160
]),
159-
161+
160162
f.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
161163
f.createObjectLiteralExpression(
162164
[
163165
f.createPropertyAssignment(
164166
f.createIdentifier("queryKey"),
165167
f.createCallExpression(
166-
f.createIdentifier("queryKeyFn"),
167-
undefined,
168-
[
169-
f.createObjectLiteralExpression(
170-
[
171-
f.createPropertyAssignment(
172-
f.createIdentifier("path"),
173-
f.createStringLiteral(camelizedPathParams(url))
174-
),
175-
f.createPropertyAssignment(
176-
f.createIdentifier("operationId"),
177-
f.createStringLiteral(operationId)
178-
),
179-
f.createShorthandPropertyAssignment(
180-
f.createIdentifier("variables"),
181-
undefined
182-
),
183-
],
184-
true
185-
),
186-
]
187-
)
168+
f.createIdentifier("queryKeyFn"),
169+
undefined,
170+
[
171+
f.createObjectLiteralExpression(
172+
[
173+
f.createPropertyAssignment(
174+
f.createIdentifier("path"),
175+
f.createStringLiteral(camelizedPathParams(url))
176+
),
177+
f.createPropertyAssignment(
178+
f.createIdentifier("operationId"),
179+
f.createStringLiteral(operationId)
180+
),
181+
f.createShorthandPropertyAssignment(
182+
f.createIdentifier("variables"),
183+
undefined
184+
),
185+
],
186+
true
187+
),
188+
]
189+
)
188190
),
189191
f.createPropertyAssignment(
190192
f.createIdentifier("queryFn"),
191193
f.createArrowFunction(
192-
[f.createModifier(ts.SyntaxKind.AsyncKeyword)],
193-
undefined,
194-
verb === "get"
195-
? [
196-
f.createParameterDeclaration(
197-
undefined,
198-
undefined,
199-
f.createObjectBindingPattern([
200-
f.createBindingElement(
201-
undefined,
202-
undefined,
203-
f.createIdentifier("signal"),
204-
undefined
205-
),
206-
]),
207-
undefined,
208-
f.createTypeLiteralNode([
209-
f.createPropertySignature(
210-
undefined,
211-
f.createIdentifier("signal"),
212-
f.createToken(ts.SyntaxKind.QuestionToken),
213-
f.createTypeReferenceNode(
214-
f.createIdentifier("AbortSignal"),
215-
undefined
216-
)
217-
),
218-
]),
219-
undefined
220-
),
221-
]
222-
: [
223-
f.createParameterDeclaration(
224-
undefined,
225-
undefined,
226-
f.createObjectBindingPattern([
227-
f.createBindingElement(
228-
undefined,
229-
undefined,
230-
f.createIdentifier("variables"),
231-
undefined
232-
),
233-
f.createBindingElement(
234-
undefined,
235-
undefined,
236-
f.createIdentifier("signal"),
194+
undefined,
195+
undefined,
196+
verb === "get"
197+
? [
198+
f.createParameterDeclaration(
199+
undefined,
200+
undefined,
201+
f.createObjectBindingPattern([
202+
f.createBindingElement(
203+
undefined,
204+
undefined,
205+
f.createIdentifier("signal"),
206+
undefined
207+
),
208+
]),
209+
undefined,
210+
f.createTypeLiteralNode([
211+
f.createPropertySignature(
212+
undefined,
213+
f.createIdentifier("signal"),
214+
f.createToken(ts.SyntaxKind.QuestionToken),
215+
f.createTypeReferenceNode(
216+
f.createIdentifier("AbortSignal"),
237217
undefined
238-
),
239-
]),
240-
undefined,
241-
f.createTypeLiteralNode([
242-
f.createPropertySignature(
243-
undefined,
244-
f.createIdentifier("variables"),
245-
undefined,
246-
variablesType
247-
),
248-
f.createPropertySignature(
249-
undefined,
250-
f.createIdentifier("signal"),
251-
f.createToken(ts.SyntaxKind.QuestionToken),
252-
f.createTypeReferenceNode(
253-
f.createIdentifier("AbortSignal"),
254-
undefined
255-
)
256-
),
257-
]),
258-
undefined
259-
),
260-
],
261-
undefined,
262-
f.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
263-
f.createCallExpression(
264-
f.createIdentifier(operationFetcherFnName),
265-
undefined,
266-
[
267-
f.createObjectLiteralExpression(
268-
[
269-
f.createSpreadAssignment(
270-
f.createIdentifier("variables")
218+
)
271219
),
272-
],
273-
false
220+
]),
221+
undefined
274222
),
275-
f.createIdentifier("signal"),
276223
]
277-
)
224+
: [
225+
f.createParameterDeclaration(
226+
undefined,
227+
undefined,
228+
f.createObjectBindingPattern([
229+
f.createBindingElement(
230+
undefined,
231+
undefined,
232+
f.createIdentifier("variables"),
233+
undefined
234+
),
235+
f.createBindingElement(
236+
undefined,
237+
undefined,
238+
f.createIdentifier("signal"),
239+
undefined
240+
),
241+
]),
242+
undefined,
243+
f.createTypeLiteralNode([
244+
f.createPropertySignature(
245+
undefined,
246+
f.createIdentifier("variables"),
247+
undefined,
248+
variablesType
249+
),
250+
f.createPropertySignature(
251+
undefined,
252+
f.createIdentifier("signal"),
253+
f.createToken(ts.SyntaxKind.QuestionToken),
254+
f.createTypeReferenceNode(
255+
f.createIdentifier("AbortSignal"),
256+
undefined
257+
)
258+
),
259+
]),
260+
undefined
261+
),
262+
],
263+
undefined,
264+
f.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
265+
f.createCallExpression(
266+
f.createIdentifier(operationFetcherFnName),
267+
undefined,
268+
[
269+
f.createIdentifier("variables"),
270+
f.createIdentifier("signal"),
271+
]
278272
)
273+
)
279274
),
280275
],
281276
true

0 commit comments

Comments
 (0)