@openapi-qraft/tanstack-query-react-plugin 2.0.0-next.7 → 2.0.0-next.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/lib/createOperationCommonTSDoc.d.ts +3 -0
  3. package/dist/lib/createOperationCommonTSDoc.d.ts.map +1 -0
  4. package/dist/lib/createOperationCommonTSDoc.js +8 -0
  5. package/dist/lib/createOperationCommonTSDoc.js.map +1 -0
  6. package/dist/plugin.d.ts.map +1 -1
  7. package/dist/plugin.js +0 -2
  8. package/dist/plugin.js.map +1 -1
  9. package/dist/ts-factory/getServiceFactory.d.ts +4 -3
  10. package/dist/ts-factory/getServiceFactory.d.ts.map +1 -1
  11. package/dist/ts-factory/getServiceFactory.js +247 -44
  12. package/dist/ts-factory/getServiceFactory.js.map +1 -1
  13. package/dist/ts-factory/service-operation.generated/ServiceOperationCancelQueries.d.ts +4 -0
  14. package/dist/ts-factory/service-operation.generated/ServiceOperationCancelQueries.d.ts.map +1 -0
  15. package/dist/ts-factory/service-operation.generated/ServiceOperationCancelQueries.js +38 -0
  16. package/dist/ts-factory/service-operation.generated/ServiceOperationCancelQueries.js.map +1 -0
  17. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchInfiniteQuery.d.ts +4 -0
  18. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchInfiniteQuery.d.ts.map +1 -0
  19. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchInfiniteQuery.js +89 -0
  20. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchInfiniteQuery.js.map +1 -0
  21. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchQuery.d.ts +4 -0
  22. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchQuery.d.ts.map +1 -0
  23. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchQuery.js +48 -0
  24. package/dist/ts-factory/service-operation.generated/ServiceOperationFetchQuery.js.map +1 -0
  25. package/dist/ts-factory/service-operation.generated/ServiceOperationGetInfiniteQueryData.d.ts +4 -0
  26. package/dist/ts-factory/service-operation.generated/ServiceOperationGetInfiniteQueryData.d.ts.map +1 -0
  27. package/dist/ts-factory/service-operation.generated/ServiceOperationGetInfiniteQueryData.js +34 -0
  28. package/dist/ts-factory/service-operation.generated/ServiceOperationGetInfiniteQueryData.js.map +1 -0
  29. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.d.ts +4 -0
  30. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.d.ts.map +1 -0
  31. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.js +59 -0
  32. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.js.map +1 -0
  33. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryData.d.ts +4 -0
  34. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryData.d.ts.map +1 -0
  35. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryData.js +30 -0
  36. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryData.js.map +1 -0
  37. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryState.d.ts +4 -0
  38. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryState.d.ts.map +1 -0
  39. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryState.js +62 -0
  40. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryState.js.map +1 -0
  41. package/dist/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.d.ts +4 -0
  42. package/dist/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.d.ts.map +1 -0
  43. package/dist/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.js +26 -0
  44. package/dist/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.js.map +1 -0
  45. package/dist/ts-factory/service-operation.generated/ServiceOperationIsFetchingQueries.d.ts +4 -0
  46. package/dist/ts-factory/service-operation.generated/ServiceOperationIsFetchingQueries.d.ts.map +1 -0
  47. package/dist/ts-factory/service-operation.generated/ServiceOperationIsFetchingQueries.js +34 -0
  48. package/dist/ts-factory/service-operation.generated/ServiceOperationIsFetchingQueries.js.map +1 -0
  49. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.d.ts +4 -0
  50. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.d.ts.map +1 -0
  51. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.js +36 -0
  52. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.js.map +1 -0
  53. package/dist/ts-factory/service-operation.generated/ServiceOperationMutationFn.d.ts +4 -0
  54. package/dist/ts-factory/service-operation.generated/ServiceOperationMutationFn.d.ts.map +1 -0
  55. package/dist/ts-factory/service-operation.generated/ServiceOperationMutationFn.js +35 -0
  56. package/dist/ts-factory/service-operation.generated/ServiceOperationMutationFn.js.map +1 -0
  57. package/dist/ts-factory/service-operation.generated/ServiceOperationQueryFn.d.ts +4 -0
  58. package/dist/ts-factory/service-operation.generated/ServiceOperationQueryFn.d.ts.map +1 -0
  59. package/dist/ts-factory/service-operation.generated/ServiceOperationQueryFn.js +62 -0
  60. package/dist/ts-factory/service-operation.generated/ServiceOperationQueryFn.js.map +1 -0
  61. package/dist/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.d.ts +4 -0
  62. package/dist/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.d.ts.map +1 -0
  63. package/dist/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.js +38 -0
  64. package/dist/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.js.map +1 -0
  65. package/dist/ts-factory/service-operation.generated/ServiceOperationRemoveQueries.d.ts +4 -0
  66. package/dist/ts-factory/service-operation.generated/ServiceOperationRemoveQueries.d.ts.map +1 -0
  67. package/dist/ts-factory/service-operation.generated/ServiceOperationRemoveQueries.js +34 -0
  68. package/dist/ts-factory/service-operation.generated/ServiceOperationRemoveQueries.js.map +1 -0
  69. package/dist/ts-factory/service-operation.generated/ServiceOperationResetQueries.d.ts +4 -0
  70. package/dist/ts-factory/service-operation.generated/ServiceOperationResetQueries.d.ts.map +1 -0
  71. package/dist/ts-factory/service-operation.generated/ServiceOperationResetQueries.js +38 -0
  72. package/dist/ts-factory/service-operation.generated/ServiceOperationResetQueries.js.map +1 -0
  73. package/dist/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.d.ts +4 -0
  74. package/dist/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.d.ts.map +1 -0
  75. package/dist/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.js +54 -0
  76. package/dist/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.js.map +1 -0
  77. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.d.ts +4 -0
  78. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.d.ts.map +1 -0
  79. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.js +55 -0
  80. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.js.map +1 -0
  81. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueryData.d.ts +4 -0
  82. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueryData.d.ts.map +1 -0
  83. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueryData.js +42 -0
  84. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueryData.js.map +1 -0
  85. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.d.ts +4 -0
  86. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.d.ts.map +1 -0
  87. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.js +138 -0
  88. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.js.map +1 -0
  89. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsFetchingQueries.d.ts +4 -0
  90. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsFetchingQueries.d.ts.map +1 -0
  91. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsFetchingQueries.js +34 -0
  92. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsFetchingQueries.js.map +1 -0
  93. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.d.ts +4 -0
  94. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.d.ts.map +1 -0
  95. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.js +36 -0
  96. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.js.map +1 -0
  97. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.d.ts +4 -0
  98. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.d.ts.map +1 -0
  99. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.js +81 -0
  100. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.js.map +1 -0
  101. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.d.ts +4 -0
  102. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.d.ts.map +1 -0
  103. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.js +63 -0
  104. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.js.map +1 -0
  105. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQueries.d.ts +4 -0
  106. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQueries.d.ts.map +1 -0
  107. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQueries.js +34 -0
  108. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQueries.js.map +1 -0
  109. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.d.ts +4 -0
  110. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.d.ts.map +1 -0
  111. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.js +93 -0
  112. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.js.map +1 -0
  113. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.d.ts +4 -0
  114. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.d.ts.map +1 -0
  115. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.js +77 -0
  116. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.js.map +1 -0
  117. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQueries.d.ts +4 -0
  118. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQueries.d.ts.map +1 -0
  119. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQueries.js +40 -0
  120. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQueries.js.map +1 -0
  121. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.d.ts +4 -0
  122. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.d.ts.map +1 -0
  123. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.js +52 -0
  124. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.js.map +1 -0
  125. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.d.ts +6 -0
  126. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.d.ts.map +1 -0
  127. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.js +22 -0
  128. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.js.map +1 -0
  129. package/dist/ts-factory/tsdoc/createUseInfiniteQueryOperationTSDocExample.d.ts +3 -0
  130. package/dist/ts-factory/tsdoc/createUseInfiniteQueryOperationTSDocExample.d.ts.map +1 -0
  131. package/dist/ts-factory/tsdoc/createUseInfiniteQueryOperationTSDocExample.js +61 -0
  132. package/dist/ts-factory/tsdoc/createUseInfiniteQueryOperationTSDocExample.js.map +1 -0
  133. package/dist/ts-factory/tsdoc/createUseIsFetchingOperationTSDocExample.d.ts +3 -0
  134. package/dist/ts-factory/tsdoc/createUseIsFetchingOperationTSDocExample.d.ts.map +1 -0
  135. package/dist/ts-factory/tsdoc/createUseIsFetchingOperationTSDocExample.js +41 -0
  136. package/dist/ts-factory/tsdoc/createUseIsFetchingOperationTSDocExample.js.map +1 -0
  137. package/dist/ts-factory/tsdoc/createUseIsMutatingOperationTSDocExample.d.ts +3 -0
  138. package/dist/ts-factory/tsdoc/createUseIsMutatingOperationTSDocExample.d.ts.map +1 -0
  139. package/dist/ts-factory/tsdoc/createUseIsMutatingOperationTSDocExample.js +41 -0
  140. package/dist/ts-factory/tsdoc/createUseIsMutatingOperationTSDocExample.js.map +1 -0
  141. package/dist/ts-factory/tsdoc/createUseMutationOperationTSDocExample.d.ts +3 -0
  142. package/dist/ts-factory/tsdoc/createUseMutationOperationTSDocExample.d.ts.map +1 -0
  143. package/dist/ts-factory/tsdoc/createUseMutationOperationTSDocExample.js +44 -0
  144. package/dist/ts-factory/tsdoc/createUseMutationOperationTSDocExample.js.map +1 -0
  145. package/dist/ts-factory/tsdoc/createUseQueryOperationTSDocExample.d.ts +3 -0
  146. package/dist/ts-factory/tsdoc/createUseQueryOperationTSDocExample.d.ts.map +1 -0
  147. package/dist/ts-factory/tsdoc/createUseQueryOperationTSDocExample.js +37 -0
  148. package/dist/ts-factory/tsdoc/createUseQueryOperationTSDocExample.js.map +1 -0
  149. package/dist/ts-factory/tsdoc/lib/createOperationMethodExampleNodes.d.ts +7 -0
  150. package/dist/ts-factory/tsdoc/lib/createOperationMethodExampleNodes.d.ts.map +1 -0
  151. package/dist/ts-factory/tsdoc/lib/createOperationMethodExampleNodes.js +8 -0
  152. package/dist/ts-factory/tsdoc/lib/createOperationMethodExampleNodes.js.map +1 -0
  153. package/dist/ts-factory/tsdoc/lib/createOperationMethodParametersExampleNodes.d.ts +4 -0
  154. package/dist/ts-factory/tsdoc/lib/createOperationMethodParametersExampleNodes.d.ts.map +1 -0
  155. package/dist/ts-factory/tsdoc/lib/createOperationMethodParametersExampleNodes.js +31 -0
  156. package/dist/ts-factory/tsdoc/lib/createOperationMethodParametersExampleNodes.js.map +1 -0
  157. package/package.json +9 -6
  158. package/src/lib/createOperationCommonTSDoc.ts +11 -0
  159. package/src/plugin.ts +0 -6
  160. package/src/ts-factory/getServiceFactory.ts +425 -91
  161. package/src/ts-factory/service-operation.generated/.gitkeep +0 -0
  162. package/src/ts-factory/service-operation.generated/ServiceOperationCancelQueries.ts +171 -0
  163. package/src/ts-factory/service-operation.generated/ServiceOperationFetchInfiniteQuery.ts +340 -0
  164. package/src/ts-factory/service-operation.generated/ServiceOperationFetchQuery.ts +219 -0
  165. package/src/ts-factory/service-operation.generated/ServiceOperationGetInfiniteQueryData.ts +134 -0
  166. package/src/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.ts +258 -0
  167. package/src/ts-factory/service-operation.generated/ServiceOperationGetQueryData.ts +120 -0
  168. package/src/ts-factory/service-operation.generated/ServiceOperationGetQueryState.ts +248 -0
  169. package/src/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.ts +137 -0
  170. package/src/ts-factory/service-operation.generated/ServiceOperationIsFetchingQueries.ts +141 -0
  171. package/src/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.ts +151 -0
  172. package/src/ts-factory/service-operation.generated/ServiceOperationMutationFn.ts +175 -0
  173. package/src/ts-factory/service-operation.generated/ServiceOperationQueryFn.ts +278 -0
  174. package/src/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.ts +171 -0
  175. package/src/ts-factory/service-operation.generated/ServiceOperationRemoveQueries.ts +141 -0
  176. package/src/ts-factory/service-operation.generated/ServiceOperationResetQueries.ts +171 -0
  177. package/src/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.ts +201 -0
  178. package/src/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.ts +221 -0
  179. package/src/ts-factory/service-operation.generated/ServiceOperationSetQueryData.ts +167 -0
  180. package/src/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.ts +534 -0
  181. package/src/ts-factory/service-operation.generated/ServiceOperationUseIsFetchingQueries.ts +141 -0
  182. package/src/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.ts +151 -0
  183. package/src/ts-factory/service-operation.generated/ServiceOperationUseMutation.ts +354 -0
  184. package/src/ts-factory/service-operation.generated/ServiceOperationUseMutationState.ts +276 -0
  185. package/src/ts-factory/service-operation.generated/ServiceOperationUseQueries.ts +191 -0
  186. package/src/ts-factory/service-operation.generated/ServiceOperationUseQuery.ts +392 -0
  187. package/src/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.ts +299 -0
  188. package/src/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQueries.ts +204 -0
  189. package/src/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.ts +212 -0
  190. package/src/ts-factory/tsdoc/createOperationMethodTSDocExample.ts +47 -0
  191. package/src/ts-factory/tsdoc/createUseInfiniteQueryOperationTSDocExample.ts +146 -0
  192. package/src/ts-factory/tsdoc/createUseIsFetchingOperationTSDocExample.ts +81 -0
  193. package/src/ts-factory/tsdoc/createUseIsMutatingOperationTSDocExample.ts +74 -0
  194. package/src/ts-factory/tsdoc/createUseMutationOperationTSDocExample.ts +88 -0
  195. package/src/ts-factory/tsdoc/createUseQueryOperationTSDocExample.ts +76 -0
  196. package/src/ts-factory/tsdoc/lib/createOperationMethodExampleNodes.ts +32 -0
  197. package/src/ts-factory/tsdoc/lib/createOperationMethodParametersExampleNodes.ts +66 -0
@@ -0,0 +1,74 @@
1
+ import type { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/getServices';
2
+ import camelcase from 'camelcase';
3
+ import ts from 'typescript';
4
+ import { createOperationCommonTSDoc } from '../../lib/createOperationCommonTSDoc.js';
5
+ import { astToString } from '../astToString.js';
6
+ import { createOperationMethodExampleNodes } from './lib/createOperationMethodExampleNodes.js';
7
+ import { createOperationMethodParametersExampleNodes } from './lib/createOperationMethodParametersExampleNodes.js';
8
+
9
+ export const createUseIsMutatingOperationTSDocExample = (
10
+ operation: ServiceOperation,
11
+ serviceVariableName: string
12
+ ) => {
13
+ const factory = ts.factory;
14
+
15
+ const example: string[] = [
16
+ 'Returns the count of currently in-progress mutations.',
17
+ '',
18
+ ...createOperationCommonTSDoc(operation),
19
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useIsMutating|`useIsMutating(...)` documentation}',
20
+
21
+ '@example Check how many mutations are currently in progress for the specified service method.',
22
+ '```ts',
23
+ ...(
24
+ `const ${camelcase(operation.name + '-total')} = ` +
25
+ astToString(
26
+ createOperationMethodExampleNodes(
27
+ operation,
28
+ {
29
+ serviceVariableName,
30
+ operationMethodName: 'useIsMutating',
31
+ },
32
+ undefined
33
+ )
34
+ )
35
+ )
36
+ .trim()
37
+ .split('\n'),
38
+ '```',
39
+
40
+ '@example Check how many mutations are currently in progress with the specified parameters.',
41
+ '```ts',
42
+ ...(
43
+ `const ${camelcase(operation.name + '-total')} = ` +
44
+ astToString(
45
+ createOperationMethodExampleNodes(
46
+ operation,
47
+ {
48
+ serviceVariableName,
49
+ operationMethodName: 'useIsMutating',
50
+ },
51
+ [
52
+ factory.createObjectLiteralExpression(
53
+ [
54
+ factory.createPropertyAssignment(
55
+ factory.createIdentifier('parameters'),
56
+ factory.createObjectLiteralExpression(
57
+ createOperationMethodParametersExampleNodes(operation),
58
+ true
59
+ )
60
+ ),
61
+ ],
62
+ true
63
+ ),
64
+ ]
65
+ )
66
+ )
67
+ )
68
+ .trim()
69
+ .split('\n'),
70
+ '```',
71
+ ];
72
+
73
+ return example;
74
+ };
@@ -0,0 +1,88 @@
1
+ import type { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/getServices';
2
+ import ts from 'typescript';
3
+ import { astToString } from '../astToString.js';
4
+ import { createOperationMethodExampleNodes } from './lib/createOperationMethodExampleNodes.js';
5
+ import { createOperationMethodParametersExampleNodes } from './lib/createOperationMethodParametersExampleNodes.js';
6
+
7
+ export const createUseMutationOperationTSDocExample = (
8
+ operation: ServiceOperation,
9
+ serviceVariableName: string
10
+ ) => {
11
+ const factory = ts.factory;
12
+
13
+ const example: string[] = [
14
+ 'Enables performing asynchronous data mutation operations such as POST, PUT, PATCH, or DELETE requests.',
15
+ 'Handles loading state, optimistic updates, and error handling.',
16
+ '',
17
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useMutation|`useMutation(...)` documentation}',
18
+ '@example Mutation with predefined parameters, e.g., for updating',
19
+ '```ts',
20
+ ...(
21
+ 'const { mutate, isPending } = ' +
22
+ astToString(
23
+ createOperationMethodExampleNodes(
24
+ operation,
25
+ {
26
+ serviceVariableName,
27
+ operationMethodName: 'useMutation',
28
+ },
29
+ [
30
+ factory.createObjectLiteralExpression(
31
+ createOperationMethodParametersExampleNodes(operation),
32
+ true
33
+ ),
34
+ ]
35
+ )
36
+ )
37
+ )
38
+ .trim()
39
+ .split('\n'),
40
+ 'mutate(body);',
41
+ '```',
42
+ ];
43
+
44
+ example.push(
45
+ '@example Mutation without predefined parameters, e.g., for creating',
46
+ '```ts',
47
+ ...(
48
+ 'const { mutate, isPending } = ' +
49
+ astToString(
50
+ createOperationMethodExampleNodes(
51
+ operation,
52
+ {
53
+ serviceVariableName,
54
+ operationMethodName: 'useMutation',
55
+ },
56
+ undefined
57
+ )
58
+ )
59
+ )
60
+ .trim()
61
+ .split('\n'),
62
+ ...astToString([
63
+ factory.createExpressionStatement(
64
+ factory.createCallExpression(
65
+ factory.createIdentifier('mutate'),
66
+ undefined,
67
+ [
68
+ factory.createObjectLiteralExpression(
69
+ [
70
+ factory.createPropertyAssignment(
71
+ factory.createIdentifier('body'),
72
+ factory.createIdentifier('bodyPayload')
73
+ ),
74
+ ...createOperationMethodParametersExampleNodes(operation),
75
+ ],
76
+ true
77
+ ),
78
+ ]
79
+ )
80
+ ),
81
+ ])
82
+ .trim()
83
+ .split('\n'),
84
+ '```'
85
+ );
86
+
87
+ return example;
88
+ };
@@ -0,0 +1,76 @@
1
+ import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/getServices';
2
+ import ts from 'typescript';
3
+ import { createOperationCommonTSDoc } from '../../lib/createOperationCommonTSDoc.js';
4
+ import { astToString } from '../astToString.js';
5
+ import { createOperationMethodExampleNodes } from './lib/createOperationMethodExampleNodes.js';
6
+ import { createOperationMethodParametersExampleNodes } from './lib/createOperationMethodParametersExampleNodes.js';
7
+
8
+ export const createUseQueryOperationTSDocExample = (
9
+ operation: ServiceOperation,
10
+ serviceVariableName: string
11
+ ) => {
12
+ const example: string[] = [
13
+ 'Performs asynchronous data fetching, manages loading states and error handling.',
14
+ '',
15
+ ...createOperationCommonTSDoc(operation),
16
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useQuery|`useQuery(...)` documentation}',
17
+ ];
18
+
19
+ if (
20
+ !operation.parameters?.length ||
21
+ operation.parameters.every((parameter) => !parameter.required)
22
+ ) {
23
+ example.push(
24
+ '@example Query without parameters',
25
+ '```ts',
26
+ ...(
27
+ 'const { data, isLoading } = ' +
28
+ astToString(
29
+ createOperationMethodExampleNodes(
30
+ operation,
31
+ {
32
+ serviceVariableName,
33
+ operationMethodName: 'useQuery',
34
+ },
35
+ undefined
36
+ )
37
+ )
38
+ )
39
+ .trim()
40
+ .split('\n'),
41
+ '```'
42
+ );
43
+ }
44
+
45
+ if (operation.parameters?.length) {
46
+ const factory = ts.factory;
47
+
48
+ example.push(
49
+ '@example Query with parameters',
50
+ '```ts',
51
+ ...(
52
+ 'const { data, isLoading } = ' +
53
+ astToString(
54
+ createOperationMethodExampleNodes(
55
+ operation,
56
+ {
57
+ serviceVariableName,
58
+ operationMethodName: 'useQuery',
59
+ },
60
+ [
61
+ factory.createObjectLiteralExpression(
62
+ createOperationMethodParametersExampleNodes(operation),
63
+ true
64
+ ),
65
+ ]
66
+ )
67
+ )
68
+ )
69
+ .trim()
70
+ .split('\n'),
71
+ '```'
72
+ );
73
+ }
74
+
75
+ return example;
76
+ };
@@ -0,0 +1,32 @@
1
+ import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/getServices';
2
+ import ts from 'typescript';
3
+
4
+ export const createOperationMethodExampleNodes = (
5
+ operation: ServiceOperation,
6
+ {
7
+ serviceVariableName,
8
+ operationMethodName,
9
+ }: { serviceVariableName: string; operationMethodName: string },
10
+ nodes: ts.Expression[] | undefined
11
+ ) => {
12
+ const factory = ts.factory;
13
+
14
+ return [
15
+ factory.createExpressionStatement(
16
+ factory.createCallExpression(
17
+ factory.createPropertyAccessExpression(
18
+ factory.createPropertyAccessExpression(
19
+ factory.createPropertyAccessExpression(
20
+ factory.createIdentifier('qraft'),
21
+ factory.createIdentifier(serviceVariableName)
22
+ ),
23
+ factory.createIdentifier(operation.name)
24
+ ),
25
+ factory.createIdentifier(operationMethodName)
26
+ ),
27
+ undefined,
28
+ nodes
29
+ )
30
+ ),
31
+ ];
32
+ };
@@ -0,0 +1,66 @@
1
+ import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/getServices';
2
+ import camelcase from 'camelcase';
3
+ import ts from 'typescript';
4
+
5
+ export const createOperationMethodParametersExampleNodes = (
6
+ operation: ServiceOperation,
7
+ transformOperationParameterIdentifier?: (
8
+ operationParameter: NonNullable<ServiceOperation['parameters']>[number]
9
+ ) => string
10
+ ): ts.PropertyAssignment[] => {
11
+ if (!operation.parameters) return [];
12
+
13
+ const parametersTypeList = operation.parameters
14
+ .map((parameter) => parameter.in)
15
+ .filter(
16
+ (parameterKind, index, array) => array.indexOf(parameterKind) === index
17
+ );
18
+
19
+ const operationRequiredParameters = operation.parameters.filter(
20
+ (parameter) => parameter.required
21
+ );
22
+
23
+ return parametersTypeList.reduce<ts.PropertyAssignment[]>(
24
+ (acc, parameterKind) => {
25
+ let operationParameters = operationRequiredParameters.filter(
26
+ (parameter) => parameter.in === parameterKind
27
+ );
28
+
29
+ if (!operationParameters.length) {
30
+ const operationParameter = operation.parameters?.find(
31
+ (parameter) => parameter.in === parameterKind
32
+ );
33
+ if (operationParameter) {
34
+ operationParameters = [operationParameter];
35
+ }
36
+ }
37
+
38
+ if (!operationParameters.length) return acc;
39
+
40
+ const factory = ts.factory;
41
+
42
+ return [
43
+ ...acc,
44
+ factory.createPropertyAssignment(
45
+ factory.createIdentifier(parameterKind),
46
+ factory.createObjectLiteralExpression(
47
+ operationParameters.map((parameter) =>
48
+ factory.createPropertyAssignment(
49
+ factory.createStringLiteral(parameter.name),
50
+ parameter.example // todo:: add example type inferring
51
+ ? factory.createStringLiteral(parameter.example)
52
+ : factory.createIdentifier(
53
+ transformOperationParameterIdentifier
54
+ ? transformOperationParameterIdentifier(parameter)
55
+ : camelcase(parameter.name)
56
+ )
57
+ )
58
+ ),
59
+ true
60
+ )
61
+ ),
62
+ ];
63
+ },
64
+ []
65
+ );
66
+ };