@openapi-qraft/tanstack-query-react-plugin 2.2.1 → 2.2.2

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 (21) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.d.ts.map +1 -1
  3. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.js +8 -2
  4. package/dist/ts-factory/tsdoc/createOperationMethodTSDocExample.js.map +1 -1
  5. package/dist/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.d.ts +5 -0
  6. package/dist/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.d.ts.map +1 -1
  7. package/dist/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.js +48 -39
  8. package/dist/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.js.map +1 -1
  9. package/dist/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.d.ts +3 -0
  10. package/dist/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.d.ts.map +1 -0
  11. package/dist/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.js +55 -0
  12. package/dist/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.js.map +1 -0
  13. package/dist/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.d.ts +3 -0
  14. package/dist/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.d.ts.map +1 -0
  15. package/dist/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.js +38 -0
  16. package/dist/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.js.map +1 -0
  17. package/package.json +2 -2
  18. package/src/ts-factory/tsdoc/createOperationMethodTSDocExample.ts +14 -2
  19. package/src/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.ts +187 -181
  20. package/src/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.ts +121 -0
  21. package/src/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.ts +77 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @openapi-qraft/tanstack-query-react-plugin
2
2
 
3
+ ## 2.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 3e90392: Added TSDoc `@example` generation for `useSuspenseQuery` and `useSuspenseQueries` hooks.
8
+ - @openapi-qraft/plugin@2.2.2
9
+
3
10
  ## 2.2.1
4
11
 
5
12
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"createOperationMethodTSDocExample.d.ts","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createOperationMethodTSDocExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAUrF,eAAO,MAAM,iCAAiC,cACjC,gBAAgB,iDAIxB;IACD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,yBA8CF,CAAC"}
1
+ {"version":3,"file":"createOperationMethodTSDocExample.d.ts","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createOperationMethodTSDocExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAYrF,eAAO,MAAM,iCAAiC,cACjC,gBAAgB,iDAIxB;IACD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,yBAwDF,CAAC"}
@@ -6,14 +6,20 @@ import { createUseMutationStateOperationTSDocExample } from './createUseMutation
6
6
  import { createUseQueriesOperationTSDocExample } from './createUseQueriesOperationTSDocExample.js';
7
7
  import { createUseQueryOperationTSDocExample } from './createUseQueryOperationTSDocExample.js';
8
8
  import { createUseSuspenseInfiniteQueryOperationTSDocExample } from './createUseSuspenseInfiniteQueryOperationTSDocExample.js';
9
+ import { createUseSuspenseQueriesOperationTSDocExample } from './createUseSuspenseQueriesOperationTSDocExample.js';
10
+ import { createUseSuspenseQueryOperationTSDocExample } from './createUseSuspenseQueryOperationTSDocExample.js';
9
11
  export const createOperationMethodTSDocExample = (operation, { serviceVariableName, operationMethodName, }) => {
10
12
  switch (operationMethodName) {
11
13
  case 'useQuery':
12
14
  return createUseQueryOperationTSDocExample(operation, serviceVariableName);
15
+ case 'useSuspenseQuery':
16
+ return createUseSuspenseQueryOperationTSDocExample(operation, serviceVariableName);
13
17
  case 'useMutation':
14
18
  return createUseMutationOperationTSDocExample(operation, serviceVariableName);
15
19
  case 'useInfiniteQuery':
16
20
  return createUseInfiniteQueryOperationTSDocExample(operation, serviceVariableName);
21
+ case 'useSuspenseInfiniteQuery':
22
+ return createUseSuspenseInfiniteQueryOperationTSDocExample(operation, serviceVariableName);
17
23
  case 'useIsFetching':
18
24
  return createUseIsFetchingOperationTSDocExample(operation, serviceVariableName);
19
25
  case 'useIsMutating':
@@ -22,8 +28,8 @@ export const createOperationMethodTSDocExample = (operation, { serviceVariableNa
22
28
  return createUseMutationStateOperationTSDocExample(operation, serviceVariableName);
23
29
  case 'useQueries':
24
30
  return createUseQueriesOperationTSDocExample(operation, serviceVariableName);
25
- case 'useSuspenseInfiniteQuery':
26
- return createUseSuspenseInfiniteQueryOperationTSDocExample(operation, serviceVariableName);
31
+ case 'useSuspenseQueries':
32
+ return createUseSuspenseQueriesOperationTSDocExample(operation, serviceVariableName);
27
33
  default:
28
34
  return undefined;
29
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createOperationMethodTSDocExample.js","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createOperationMethodTSDocExample.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2CAA2C,EAAE,MAAM,kDAAkD,CAAC;AAC/G,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,EAAE,sCAAsC,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,2CAA2C,EAAE,MAAM,kDAAkD,CAAC;AAC/G,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,mDAAmD,EAAE,MAAM,0DAA0D,CAAC;AAE/H,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,SAA2B,EAC3B,EACE,mBAAmB,EACnB,mBAAmB,GAIpB,EACD,EAAE;IACF,QAAQ,mBAAmB,EAAE,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,mCAAmC,CACxC,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,sCAAsC,CAC3C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,2CAA2C,CAChD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,wCAAwC,CAC7C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,wCAAwC,CAC7C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,2CAA2C,CAChD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,qCAAqC,CAC1C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,0BAA0B;YAC7B,OAAO,mDAAmD,CACxD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"createOperationMethodTSDocExample.js","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createOperationMethodTSDocExample.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2CAA2C,EAAE,MAAM,kDAAkD,CAAC;AAC/G,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,EAAE,wCAAwC,EAAE,MAAM,+CAA+C,CAAC;AACzG,OAAO,EAAE,sCAAsC,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,2CAA2C,EAAE,MAAM,kDAAkD,CAAC;AAC/G,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,mDAAmD,EAAE,MAAM,0DAA0D,CAAC;AAC/H,OAAO,EAAE,6CAA6C,EAAE,MAAM,oDAAoD,CAAC;AACnH,OAAO,EAAE,2CAA2C,EAAE,MAAM,kDAAkD,CAAC;AAE/G,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,SAA2B,EAC3B,EACE,mBAAmB,EACnB,mBAAmB,GAIpB,EACD,EAAE;IACF,QAAQ,mBAAmB,EAAE,CAAC;QAC5B,KAAK,UAAU;YACb,OAAO,mCAAmC,CACxC,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,2CAA2C,CAChD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,sCAAsC,CAC3C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,2CAA2C,CAChD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,0BAA0B;YAC7B,OAAO,mDAAmD,CACxD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,wCAAwC,CAC7C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO,wCAAwC,CAC7C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,2CAA2C,CAChD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,qCAAqC,CAC1C,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ,KAAK,oBAAoB;YACvB,OAAO,6CAA6C,CAClD,SAAS,EACT,mBAAmB,CACpB,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC"}
@@ -1,3 +1,8 @@
1
1
  import type { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/OpenAPIService';
2
+ import ts from 'typescript';
2
3
  export declare const createUseQueriesOperationTSDocExample: (operation: ServiceOperation, serviceVariableName: string) => string[];
4
+ export declare const createQueriesArrayExpression: (operation: ServiceOperation, factory: ts.NodeFactory) => ts.ArrayLiteralExpression;
5
+ export declare const createCombineFunction: (factory: ts.NodeFactory) => ts.ArrowFunction;
6
+ export declare const createResultsForEachExpression: (variableName: string, factory: ts.NodeFactory) => ts.ExpressionStatement;
7
+ export declare const createCombinedResultsForEachExpression: (variableName: string, factory: ts.NodeFactory) => ts.ExpressionStatement;
3
8
  //# sourceMappingURL=createUseQueriesOperationTSDocExample.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUseQueriesOperationTSDocExample.d.ts","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAQ1F,eAAO,MAAM,qCAAqC,cACrC,gBAAgB,uBACN,MAAM,aAyR5B,CAAC"}
1
+ {"version":3,"file":"createUseQueriesOperationTSDocExample.d.ts","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,OAAO,EAAE,MAAM,YAAY,CAAC;AAM5B,eAAO,MAAM,qCAAqC,cACrC,gBAAgB,uBACN,MAAM,aAwG5B,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAC5B,gBAAgB,WAClB,EAAE,CAAC,WAAW,KACtB,EAAE,CAAC,sBAkBL,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,EAAE,CAAC,WAAW,KACtB,EAAE,CAAC,aAwCL,CAAC;AAEF,eAAO,MAAM,8BAA8B,iBAC3B,MAAM,WACX,EAAE,CAAC,WAAW,KACtB,EAAE,CAAC,mBAgEL,CAAC;AAEF,eAAO,MAAM,sCAAsC,iBACnC,MAAM,WACX,EAAE,CAAC,WAAW,KACtB,EAAE,CAAC,mBA0CL,CAAC"}
@@ -20,28 +20,11 @@ export const createUseQueriesOperationTSDocExample = (operation, serviceVariable
20
20
  operationMethodName: 'useQueries',
21
21
  }, [
22
22
  factory.createObjectLiteralExpression([
23
- factory.createPropertyAssignment(factory.createIdentifier('queries'), factory.createArrayLiteralExpression([
24
- factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation, (parameter) => camelcase(`${parameter.name}-1`)), true),
25
- factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation, (parameter) => camelcase(`${parameter.name}-2`)), true),
26
- ], true)),
23
+ factory.createPropertyAssignment(factory.createIdentifier('queries'), createQueriesArrayExpression(operation, factory)),
27
24
  ], true),
28
25
  ])),
29
26
  ], ts.NodeFlags.Const)),
30
- factory.createExpressionStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier(camelcase(operation.name + '-results')), factory.createIdentifier('forEach')), undefined, [
31
- factory.createArrowFunction(undefined, undefined, [
32
- factory.createParameterDeclaration(undefined, undefined, factory.createObjectBindingPattern([
33
- factory.createBindingElement(undefined, undefined, factory.createIdentifier('isSuccess')),
34
- factory.createBindingElement(undefined, undefined, factory.createIdentifier('data')),
35
- factory.createBindingElement(undefined, undefined, factory.createIdentifier('error')),
36
- ])),
37
- ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('console'), factory.createIdentifier('log')), undefined, [
38
- factory.createObjectLiteralExpression([
39
- factory.createShorthandPropertyAssignment(factory.createIdentifier('isSuccess')),
40
- factory.createShorthandPropertyAssignment(factory.createIdentifier('data')),
41
- factory.createShorthandPropertyAssignment(factory.createIdentifier('error')),
42
- ], false),
43
- ])),
44
- ])),
27
+ createResultsForEachExpression(camelcase(operation.name + '-results'), factory),
45
28
  ])
46
29
  .trim()
47
30
  .split('\n'),
@@ -55,29 +38,12 @@ export const createUseQueriesOperationTSDocExample = (operation, serviceVariable
55
38
  operationMethodName: 'useQueries',
56
39
  }, [
57
40
  factory.createObjectLiteralExpression([
58
- factory.createPropertyAssignment(factory.createIdentifier('combine'), factory.createArrowFunction(undefined, undefined, [
59
- factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('results')),
60
- ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('results'), factory.createIdentifier('map')), undefined, [
61
- factory.createArrowFunction(undefined, undefined, [
62
- factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('result')),
63
- ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createPropertyAccessExpression(factory.createIdentifier('result'), factory.createIdentifier('data'))),
64
- ]))),
65
- factory.createPropertyAssignment(factory.createIdentifier('queries'), factory.createArrayLiteralExpression([
66
- factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation, (parameter) => camelcase(`${parameter.name}-1`)), true),
67
- factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation, (parameter) => camelcase(`${parameter.name}-2`)), true),
68
- ], true)),
41
+ factory.createPropertyAssignment(factory.createIdentifier('combine'), createCombineFunction(factory)),
42
+ factory.createPropertyAssignment(factory.createIdentifier('queries'), createQueriesArrayExpression(operation, factory)),
69
43
  ], true),
70
44
  ])),
71
45
  ], ts.NodeFlags.Const)),
72
- factory.createExpressionStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier(camelcase(operation.name + '-combined-results')), factory.createIdentifier('forEach')), undefined, [
73
- factory.createArrowFunction(undefined, undefined, [
74
- factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('data')),
75
- ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('console'), factory.createIdentifier('log')), undefined, [
76
- factory.createObjectLiteralExpression([
77
- factory.createShorthandPropertyAssignment(factory.createIdentifier('data'), undefined),
78
- ], false),
79
- ])),
80
- ])),
46
+ createCombinedResultsForEachExpression(camelcase(operation.name + '-combined-results'), factory),
81
47
  ])
82
48
  .trim()
83
49
  .split('\n'),
@@ -85,4 +51,47 @@ export const createUseQueriesOperationTSDocExample = (operation, serviceVariable
85
51
  ];
86
52
  return example;
87
53
  };
54
+ export const createQueriesArrayExpression = (operation, factory) => {
55
+ return factory.createArrayLiteralExpression([
56
+ factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation, (parameter) => camelcase(`${parameter.name}-1`)), true),
57
+ factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation, (parameter) => camelcase(`${parameter.name}-2`)), true),
58
+ ], true);
59
+ };
60
+ export const createCombineFunction = (factory) => {
61
+ return factory.createArrowFunction(undefined, undefined, [
62
+ factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('results')),
63
+ ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('results'), factory.createIdentifier('map')), undefined, [
64
+ factory.createArrowFunction(undefined, undefined, [
65
+ factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('result')),
66
+ ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createPropertyAccessExpression(factory.createIdentifier('result'), factory.createIdentifier('data'))),
67
+ ]));
68
+ };
69
+ export const createResultsForEachExpression = (variableName, factory) => {
70
+ return factory.createExpressionStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier(variableName), factory.createIdentifier('forEach')), undefined, [
71
+ factory.createArrowFunction(undefined, undefined, [
72
+ factory.createParameterDeclaration(undefined, undefined, factory.createObjectBindingPattern([
73
+ factory.createBindingElement(undefined, undefined, factory.createIdentifier('isSuccess')),
74
+ factory.createBindingElement(undefined, undefined, factory.createIdentifier('data')),
75
+ factory.createBindingElement(undefined, undefined, factory.createIdentifier('error')),
76
+ ])),
77
+ ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('console'), factory.createIdentifier('log')), undefined, [
78
+ factory.createObjectLiteralExpression([
79
+ factory.createShorthandPropertyAssignment(factory.createIdentifier('isSuccess')),
80
+ factory.createShorthandPropertyAssignment(factory.createIdentifier('data')),
81
+ factory.createShorthandPropertyAssignment(factory.createIdentifier('error')),
82
+ ], false),
83
+ ])),
84
+ ]));
85
+ };
86
+ export const createCombinedResultsForEachExpression = (variableName, factory) => {
87
+ return factory.createExpressionStatement(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier(variableName), factory.createIdentifier('forEach')), undefined, [
88
+ factory.createArrowFunction(undefined, undefined, [
89
+ factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('data')),
90
+ ], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('console'), factory.createIdentifier('log')), undefined, [
91
+ factory.createObjectLiteralExpression([
92
+ factory.createShorthandPropertyAssignment(factory.createIdentifier('data')),
93
+ ], false),
94
+ ])),
95
+ ]));
96
+ };
88
97
  //# sourceMappingURL=createUseQueriesOperationTSDocExample.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUseQueriesOperationTSDocExample.js","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createUseQueriesOperationTSDocExample.js","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseQueriesOperationTSDocExample.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/OpenAPIService';
2
+ export declare const createUseSuspenseQueriesOperationTSDocExample: (operation: ServiceOperation, serviceVariableName: string) => string[];
3
+ //# sourceMappingURL=createUseSuspenseQueriesOperationTSDocExample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUseSuspenseQueriesOperationTSDocExample.d.ts","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAa1F,eAAO,MAAM,6CAA6C,cAC7C,gBAAgB,uBACN,MAAM,aAyG5B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import camelcase from 'camelcase';
2
+ import ts from 'typescript';
3
+ import { createOperationCommonTSDoc } from '../../lib/createOperationCommonTSDoc.js';
4
+ import { astToString } from '../astToString.js';
5
+ import { createCombinedResultsForEachExpression, createCombineFunction, createQueriesArrayExpression, createResultsForEachExpression, } from './createUseQueriesOperationTSDocExample.js';
6
+ import { createOperationMethodCallExpressionExampleNode } from './lib/createOperationMethodCallExpressionExampleNode.js';
7
+ export const createUseSuspenseQueriesOperationTSDocExample = (operation, serviceVariableName) => {
8
+ const factory = ts.factory;
9
+ const example = [
10
+ 'Allows you to execute multiple asynchronous data fetching operations concurrently with Suspense support.',
11
+ 'Similar to useQueries but integrates with React Suspense for loading states.',
12
+ '',
13
+ ...createOperationCommonTSDoc(operation),
14
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useSuspenseQueries|`useSuspenseQueries(...)` documentation}',
15
+ '@example Basic usage with Suspense',
16
+ '```ts',
17
+ ...astToString([
18
+ factory.createVariableStatement(undefined, factory.createVariableDeclarationList([
19
+ factory.createVariableDeclaration(factory.createIdentifier(camelcase(operation.name + '-data')), undefined, undefined, createOperationMethodCallExpressionExampleNode(operation, {
20
+ serviceVariableName,
21
+ operationMethodName: 'useSuspenseQueries',
22
+ }, [
23
+ factory.createObjectLiteralExpression([
24
+ factory.createPropertyAssignment(factory.createIdentifier('queries'), createQueriesArrayExpression(operation, factory)),
25
+ ], true),
26
+ ])),
27
+ ], ts.NodeFlags.Const)),
28
+ createResultsForEachExpression(camelcase(operation.name + '-results'), factory),
29
+ ])
30
+ .trim()
31
+ .split('\n'),
32
+ '```',
33
+ '@example With data transformation using combine',
34
+ '```ts',
35
+ ...astToString([
36
+ factory.createVariableStatement(undefined, factory.createVariableDeclarationList([
37
+ factory.createVariableDeclaration(factory.createIdentifier(camelcase(operation.name + '-combined-data')), undefined, undefined, createOperationMethodCallExpressionExampleNode(operation, {
38
+ serviceVariableName,
39
+ operationMethodName: 'useSuspenseQueries',
40
+ }, [
41
+ factory.createObjectLiteralExpression([
42
+ factory.createPropertyAssignment(factory.createIdentifier('combine'), createCombineFunction(factory)),
43
+ factory.createPropertyAssignment(factory.createIdentifier('queries'), createQueriesArrayExpression(operation, factory)),
44
+ ], true),
45
+ ])),
46
+ ], ts.NodeFlags.Const)),
47
+ createCombinedResultsForEachExpression(camelcase(operation.name + '-combined-data'), factory),
48
+ ])
49
+ .trim()
50
+ .split('\n'),
51
+ '```',
52
+ ];
53
+ return example;
54
+ };
55
+ //# sourceMappingURL=createUseSuspenseQueriesOperationTSDocExample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUseSuspenseQueriesOperationTSDocExample.js","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseSuspenseQueriesOperationTSDocExample.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,sCAAsC,EACtC,qBAAqB,EACrB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,8CAA8C,EAAE,MAAM,yDAAyD,CAAC;AAEzH,MAAM,CAAC,MAAM,6CAA6C,GAAG,CAC3D,SAA2B,EAC3B,mBAA2B,EAC3B,EAAE;IACF,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAE3B,MAAM,OAAO,GAAa;QACxB,0GAA0G;QAC1G,8EAA8E;QAC9E,EAAE;QACF,GAAG,0BAA0B,CAAC,SAAS,CAAC;QACxC,kIAAkI;QAElI,oCAAoC;QACpC,OAAO;QACP,GAAG,WAAW,CAAC;YACb,OAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,OAAO,CAAC,6BAA6B,CACnC;gBACE,OAAO,CAAC,yBAAyB,CAC/B,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,EAC7D,SAAS,EACT,SAAS,EACT,8CAA8C,CAC5C,SAAS,EACT;oBACE,mBAAmB;oBACnB,mBAAmB,EAAE,oBAAoB;iBAC1C,EACD;oBACE,OAAO,CAAC,6BAA6B,CACnC;wBACE,OAAO,CAAC,wBAAwB,CAC9B,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CACjD;qBACF,EACD,IAAI,CACL;iBACF,CACF,CACF;aACF,EACD,EAAE,CAAC,SAAS,CAAC,KAAK,CACnB,CACF;YACD,8BAA8B,CAC5B,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,EACtC,OAAO,CACR;SACF,CAAC;aACC,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;QACd,KAAK;QAEL,iDAAiD;QACjD,OAAO;QACP,GAAG,WAAW,CAAC;YACb,OAAO,CAAC,uBAAuB,CAC7B,SAAS,EACT,OAAO,CAAC,6BAA6B,CACnC;gBACE,OAAO,CAAC,yBAAyB,CAC/B,OAAO,CAAC,gBAAgB,CACtB,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,gBAAgB,CAAC,CAC7C,EACD,SAAS,EACT,SAAS,EACT,8CAA8C,CAC5C,SAAS,EACT;oBACE,mBAAmB;oBACnB,mBAAmB,EAAE,oBAAoB;iBAC1C,EACD;oBACE,OAAO,CAAC,6BAA6B,CACnC;wBACE,OAAO,CAAC,wBAAwB,CAC9B,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,qBAAqB,CAAC,OAAO,CAAC,CAC/B;wBACD,OAAO,CAAC,wBAAwB,CAC9B,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CACjD;qBACF,EACD,IAAI,CACL;iBACF,CACF,CACF;aACF,EACD,EAAE,CAAC,SAAS,CAAC,KAAK,CACnB,CACF;YACD,sCAAsC,CACpC,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,gBAAgB,CAAC,EAC5C,OAAO,CACR;SACF,CAAC;aACC,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;QACd,KAAK;KACN,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/OpenAPIService';
2
+ export declare const createUseSuspenseQueryOperationTSDocExample: (operation: ServiceOperation, serviceVariableName: string) => string[];
3
+ //# sourceMappingURL=createUseSuspenseQueryOperationTSDocExample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUseSuspenseQueryOperationTSDocExample.d.ts","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AAOrF,eAAO,MAAM,2CAA2C,cAC3C,gBAAgB,uBACN,MAAM,aAmE5B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import ts from 'typescript';
2
+ import { createOperationCommonTSDoc } from '../../lib/createOperationCommonTSDoc.js';
3
+ import { astToString } from '../astToString.js';
4
+ import { createOperationMethodCallExpressionExampleNode } from './lib/createOperationMethodCallExpressionExampleNode.js';
5
+ import { createOperationMethodParametersExampleNodes } from './lib/createOperationMethodParametersExampleNodes.js';
6
+ export const createUseSuspenseQueryOperationTSDocExample = (operation, serviceVariableName) => {
7
+ const example = [
8
+ 'Performs asynchronous data fetching with Suspense support.',
9
+ 'Similar to useQuery but integrates with React Suspense for loading states.',
10
+ '',
11
+ ...createOperationCommonTSDoc(operation),
12
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useSuspenseQuery|`useSuspenseQuery(...)` documentation}',
13
+ ];
14
+ if (!operation.parameters?.length ||
15
+ operation.parameters.every((parameter) => !parameter.required)) {
16
+ example.push('@example Suspense Query without parameters', '```ts', ...('const data = ' +
17
+ astToString(createOperationMethodCallExpressionExampleNode(operation, {
18
+ serviceVariableName,
19
+ operationMethodName: 'useSuspenseQuery',
20
+ }, undefined)))
21
+ .trim()
22
+ .split('\n'), '```');
23
+ }
24
+ if (operation.parameters?.length) {
25
+ const factory = ts.factory;
26
+ example.push('@example Suspense Query with parameters', '```ts', ...('const data = ' +
27
+ astToString(createOperationMethodCallExpressionExampleNode(operation, {
28
+ serviceVariableName,
29
+ operationMethodName: 'useSuspenseQuery',
30
+ }, [
31
+ factory.createObjectLiteralExpression(createOperationMethodParametersExampleNodes(operation), true),
32
+ ])))
33
+ .trim()
34
+ .split('\n'), '```');
35
+ }
36
+ return example;
37
+ };
38
+ //# sourceMappingURL=createUseSuspenseQueryOperationTSDocExample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUseSuspenseQueryOperationTSDocExample.js","sourceRoot":"","sources":["../../../src/ts-factory/tsdoc/createUseSuspenseQueryOperationTSDocExample.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,8CAA8C,EAAE,MAAM,yDAAyD,CAAC;AACzH,OAAO,EAAE,2CAA2C,EAAE,MAAM,sDAAsD,CAAC;AAEnH,MAAM,CAAC,MAAM,2CAA2C,GAAG,CACzD,SAA2B,EAC3B,mBAA2B,EAC3B,EAAE;IACF,MAAM,OAAO,GAAa;QACxB,4DAA4D;QAC5D,4EAA4E;QAC5E,EAAE;QACF,GAAG,0BAA0B,CAAC,SAAS,CAAC;QACxC,8HAA8H;KAC/H,CAAC;IAEF,IACE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM;QAC7B,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CACV,4CAA4C,EAC5C,OAAO,EACP,GAAG,CACD,eAAe;YACf,WAAW,CACT,8CAA8C,CAC5C,SAAS,EACT;gBACE,mBAAmB;gBACnB,mBAAmB,EAAE,kBAAkB;aACxC,EACD,SAAS,CACV,CACF,CACF;aACE,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC,EACd,KAAK,CACN,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAE3B,OAAO,CAAC,IAAI,CACV,yCAAyC,EACzC,OAAO,EACP,GAAG,CACD,eAAe;YACf,WAAW,CACT,8CAA8C,CAC5C,SAAS,EACT;gBACE,mBAAmB;gBACnB,mBAAmB,EAAE,kBAAkB;aACxC,EACD;gBACE,OAAO,CAAC,6BAA6B,CACnC,2CAA2C,CAAC,SAAS,CAAC,EACtD,IAAI,CACL;aACF,CACF,CACF,CACF;aACE,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC,EACd,KAAK,CACN,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openapi-qraft/tanstack-query-react-plugin",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "tsc --project tsconfig.build.json",
@@ -27,7 +27,7 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@openapi-qraft/plugin": "^2.2.1",
30
+ "@openapi-qraft/plugin": "^2.2.2",
31
31
  "typescript": "^5.6.2"
32
32
  },
33
33
  "devDependencies": {
@@ -7,6 +7,8 @@ import { createUseMutationStateOperationTSDocExample } from './createUseMutation
7
7
  import { createUseQueriesOperationTSDocExample } from './createUseQueriesOperationTSDocExample.js';
8
8
  import { createUseQueryOperationTSDocExample } from './createUseQueryOperationTSDocExample.js';
9
9
  import { createUseSuspenseInfiniteQueryOperationTSDocExample } from './createUseSuspenseInfiniteQueryOperationTSDocExample.js';
10
+ import { createUseSuspenseQueriesOperationTSDocExample } from './createUseSuspenseQueriesOperationTSDocExample.js';
11
+ import { createUseSuspenseQueryOperationTSDocExample } from './createUseSuspenseQueryOperationTSDocExample.js';
10
12
 
11
13
  export const createOperationMethodTSDocExample = (
12
14
  operation: ServiceOperation,
@@ -24,6 +26,11 @@ export const createOperationMethodTSDocExample = (
24
26
  operation,
25
27
  serviceVariableName
26
28
  );
29
+ case 'useSuspenseQuery':
30
+ return createUseSuspenseQueryOperationTSDocExample(
31
+ operation,
32
+ serviceVariableName
33
+ );
27
34
  case 'useMutation':
28
35
  return createUseMutationOperationTSDocExample(
29
36
  operation,
@@ -34,6 +41,11 @@ export const createOperationMethodTSDocExample = (
34
41
  operation,
35
42
  serviceVariableName
36
43
  );
44
+ case 'useSuspenseInfiniteQuery':
45
+ return createUseSuspenseInfiniteQueryOperationTSDocExample(
46
+ operation,
47
+ serviceVariableName
48
+ );
37
49
  case 'useIsFetching':
38
50
  return createUseIsFetchingOperationTSDocExample(
39
51
  operation,
@@ -54,8 +66,8 @@ export const createOperationMethodTSDocExample = (
54
66
  operation,
55
67
  serviceVariableName
56
68
  );
57
- case 'useSuspenseInfiniteQuery':
58
- return createUseSuspenseInfiniteQueryOperationTSDocExample(
69
+ case 'useSuspenseQueries':
70
+ return createUseSuspenseQueriesOperationTSDocExample(
59
71
  operation,
60
72
  serviceVariableName
61
73
  );
@@ -40,25 +40,7 @@ export const createUseQueriesOperationTSDocExample = (
40
40
  [
41
41
  factory.createPropertyAssignment(
42
42
  factory.createIdentifier('queries'),
43
- factory.createArrayLiteralExpression(
44
- [
45
- factory.createObjectLiteralExpression(
46
- createOperationMethodParametersExampleNodes(
47
- operation,
48
- (parameter) => camelcase(`${parameter.name}-1`)
49
- ),
50
- true
51
- ),
52
- factory.createObjectLiteralExpression(
53
- createOperationMethodParametersExampleNodes(
54
- operation,
55
- (parameter) => camelcase(`${parameter.name}-2`)
56
- ),
57
- true
58
- ),
59
- ],
60
- true
61
- )
43
+ createQueriesArrayExpression(operation, factory)
62
44
  ),
63
45
  ],
64
46
  true
@@ -70,68 +52,9 @@ export const createUseQueriesOperationTSDocExample = (
70
52
  ts.NodeFlags.Const
71
53
  )
72
54
  ),
73
- factory.createExpressionStatement(
74
- factory.createCallExpression(
75
- factory.createPropertyAccessExpression(
76
- factory.createIdentifier(camelcase(operation.name + '-results')),
77
- factory.createIdentifier('forEach')
78
- ),
79
- undefined,
80
- [
81
- factory.createArrowFunction(
82
- undefined,
83
- undefined,
84
- [
85
- factory.createParameterDeclaration(
86
- undefined,
87
- undefined,
88
- factory.createObjectBindingPattern([
89
- factory.createBindingElement(
90
- undefined,
91
- undefined,
92
- factory.createIdentifier('isSuccess')
93
- ),
94
- factory.createBindingElement(
95
- undefined,
96
- undefined,
97
- factory.createIdentifier('data')
98
- ),
99
- factory.createBindingElement(
100
- undefined,
101
- undefined,
102
- factory.createIdentifier('error')
103
- ),
104
- ])
105
- ),
106
- ],
107
- undefined,
108
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
109
- factory.createCallExpression(
110
- factory.createPropertyAccessExpression(
111
- factory.createIdentifier('console'),
112
- factory.createIdentifier('log')
113
- ),
114
- undefined,
115
- [
116
- factory.createObjectLiteralExpression(
117
- [
118
- factory.createShorthandPropertyAssignment(
119
- factory.createIdentifier('isSuccess')
120
- ),
121
- factory.createShorthandPropertyAssignment(
122
- factory.createIdentifier('data')
123
- ),
124
- factory.createShorthandPropertyAssignment(
125
- factory.createIdentifier('error')
126
- ),
127
- ],
128
- false
129
- ),
130
- ]
131
- )
132
- ),
133
- ]
134
- )
55
+ createResultsForEachExpression(
56
+ camelcase(operation.name + '-results'),
57
+ factory
135
58
  ),
136
59
  ])
137
60
  .trim()
@@ -162,71 +85,11 @@ export const createUseQueriesOperationTSDocExample = (
162
85
  [
163
86
  factory.createPropertyAssignment(
164
87
  factory.createIdentifier('combine'),
165
- factory.createArrowFunction(
166
- undefined,
167
- undefined,
168
- [
169
- factory.createParameterDeclaration(
170
- undefined,
171
- undefined,
172
- factory.createIdentifier('results')
173
- ),
174
- ],
175
- undefined,
176
- factory.createToken(
177
- ts.SyntaxKind.EqualsGreaterThanToken
178
- ),
179
- factory.createCallExpression(
180
- factory.createPropertyAccessExpression(
181
- factory.createIdentifier('results'),
182
- factory.createIdentifier('map')
183
- ),
184
- undefined,
185
- [
186
- factory.createArrowFunction(
187
- undefined,
188
- undefined,
189
- [
190
- factory.createParameterDeclaration(
191
- undefined,
192
- undefined,
193
- factory.createIdentifier('result')
194
- ),
195
- ],
196
- undefined,
197
- factory.createToken(
198
- ts.SyntaxKind.EqualsGreaterThanToken
199
- ),
200
- factory.createPropertyAccessExpression(
201
- factory.createIdentifier('result'),
202
- factory.createIdentifier('data')
203
- )
204
- ),
205
- ]
206
- )
207
- )
88
+ createCombineFunction(factory)
208
89
  ),
209
90
  factory.createPropertyAssignment(
210
91
  factory.createIdentifier('queries'),
211
- factory.createArrayLiteralExpression(
212
- [
213
- factory.createObjectLiteralExpression(
214
- createOperationMethodParametersExampleNodes(
215
- operation,
216
- (parameter) => camelcase(`${parameter.name}-1`)
217
- ),
218
- true
219
- ),
220
- factory.createObjectLiteralExpression(
221
- createOperationMethodParametersExampleNodes(
222
- operation,
223
- (parameter) => camelcase(`${parameter.name}-2`)
224
- ),
225
- true
226
- ),
227
- ],
228
- true
229
- )
92
+ createQueriesArrayExpression(operation, factory)
230
93
  ),
231
94
  ],
232
95
  true
@@ -238,55 +101,198 @@ export const createUseQueriesOperationTSDocExample = (
238
101
  ts.NodeFlags.Const
239
102
  )
240
103
  ),
241
- factory.createExpressionStatement(
242
- factory.createCallExpression(
243
- factory.createPropertyAccessExpression(
244
- factory.createIdentifier(
245
- camelcase(operation.name + '-combined-results')
104
+ createCombinedResultsForEachExpression(
105
+ camelcase(operation.name + '-combined-results'),
106
+ factory
107
+ ),
108
+ ])
109
+ .trim()
110
+ .split('\n'),
111
+ '```',
112
+ ];
113
+
114
+ return example;
115
+ };
116
+
117
+ export const createQueriesArrayExpression = (
118
+ operation: ServiceOperation,
119
+ factory: ts.NodeFactory
120
+ ): ts.ArrayLiteralExpression => {
121
+ return factory.createArrayLiteralExpression(
122
+ [
123
+ factory.createObjectLiteralExpression(
124
+ createOperationMethodParametersExampleNodes(operation, (parameter) =>
125
+ camelcase(`${parameter.name}-1`)
126
+ ),
127
+ true
128
+ ),
129
+ factory.createObjectLiteralExpression(
130
+ createOperationMethodParametersExampleNodes(operation, (parameter) =>
131
+ camelcase(`${parameter.name}-2`)
132
+ ),
133
+ true
134
+ ),
135
+ ],
136
+ true
137
+ );
138
+ };
139
+
140
+ export const createCombineFunction = (
141
+ factory: ts.NodeFactory
142
+ ): ts.ArrowFunction => {
143
+ return factory.createArrowFunction(
144
+ undefined,
145
+ undefined,
146
+ [
147
+ factory.createParameterDeclaration(
148
+ undefined,
149
+ undefined,
150
+ factory.createIdentifier('results')
151
+ ),
152
+ ],
153
+ undefined,
154
+ factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
155
+ factory.createCallExpression(
156
+ factory.createPropertyAccessExpression(
157
+ factory.createIdentifier('results'),
158
+ factory.createIdentifier('map')
159
+ ),
160
+ undefined,
161
+ [
162
+ factory.createArrowFunction(
163
+ undefined,
164
+ undefined,
165
+ [
166
+ factory.createParameterDeclaration(
167
+ undefined,
168
+ undefined,
169
+ factory.createIdentifier('result')
246
170
  ),
247
- factory.createIdentifier('forEach')
248
- ),
171
+ ],
172
+ undefined,
173
+ factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
174
+ factory.createPropertyAccessExpression(
175
+ factory.createIdentifier('result'),
176
+ factory.createIdentifier('data')
177
+ )
178
+ ),
179
+ ]
180
+ )
181
+ );
182
+ };
183
+
184
+ export const createResultsForEachExpression = (
185
+ variableName: string,
186
+ factory: ts.NodeFactory
187
+ ): ts.ExpressionStatement => {
188
+ return factory.createExpressionStatement(
189
+ factory.createCallExpression(
190
+ factory.createPropertyAccessExpression(
191
+ factory.createIdentifier(variableName),
192
+ factory.createIdentifier('forEach')
193
+ ),
194
+ undefined,
195
+ [
196
+ factory.createArrowFunction(
197
+ undefined,
249
198
  undefined,
250
199
  [
251
- factory.createArrowFunction(
200
+ factory.createParameterDeclaration(
252
201
  undefined,
253
202
  undefined,
254
- [
255
- factory.createParameterDeclaration(
203
+ factory.createObjectBindingPattern([
204
+ factory.createBindingElement(
205
+ undefined,
206
+ undefined,
207
+ factory.createIdentifier('isSuccess')
208
+ ),
209
+ factory.createBindingElement(
256
210
  undefined,
257
211
  undefined,
258
212
  factory.createIdentifier('data')
259
213
  ),
260
- ],
261
- undefined,
262
- factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
263
- factory.createCallExpression(
264
- factory.createPropertyAccessExpression(
265
- factory.createIdentifier('console'),
266
- factory.createIdentifier('log')
214
+ factory.createBindingElement(
215
+ undefined,
216
+ undefined,
217
+ factory.createIdentifier('error')
267
218
  ),
268
- undefined,
219
+ ])
220
+ ),
221
+ ],
222
+ undefined,
223
+ factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
224
+ factory.createCallExpression(
225
+ factory.createPropertyAccessExpression(
226
+ factory.createIdentifier('console'),
227
+ factory.createIdentifier('log')
228
+ ),
229
+ undefined,
230
+ [
231
+ factory.createObjectLiteralExpression(
269
232
  [
270
- factory.createObjectLiteralExpression(
271
- [
272
- factory.createShorthandPropertyAssignment(
273
- factory.createIdentifier('data'),
274
- undefined
275
- ),
276
- ],
277
- false
233
+ factory.createShorthandPropertyAssignment(
234
+ factory.createIdentifier('isSuccess')
278
235
  ),
279
- ]
280
- )
281
- ),
282
- ]
283
- )
284
- ),
285
- ])
286
- .trim()
287
- .split('\n'),
288
- '```',
289
- ];
236
+ factory.createShorthandPropertyAssignment(
237
+ factory.createIdentifier('data')
238
+ ),
239
+ factory.createShorthandPropertyAssignment(
240
+ factory.createIdentifier('error')
241
+ ),
242
+ ],
243
+ false
244
+ ),
245
+ ]
246
+ )
247
+ ),
248
+ ]
249
+ )
250
+ );
251
+ };
290
252
 
291
- return example;
253
+ export const createCombinedResultsForEachExpression = (
254
+ variableName: string,
255
+ factory: ts.NodeFactory
256
+ ): ts.ExpressionStatement => {
257
+ return factory.createExpressionStatement(
258
+ factory.createCallExpression(
259
+ factory.createPropertyAccessExpression(
260
+ factory.createIdentifier(variableName),
261
+ factory.createIdentifier('forEach')
262
+ ),
263
+ undefined,
264
+ [
265
+ factory.createArrowFunction(
266
+ undefined,
267
+ undefined,
268
+ [
269
+ factory.createParameterDeclaration(
270
+ undefined,
271
+ undefined,
272
+ factory.createIdentifier('data')
273
+ ),
274
+ ],
275
+ undefined,
276
+ factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
277
+ factory.createCallExpression(
278
+ factory.createPropertyAccessExpression(
279
+ factory.createIdentifier('console'),
280
+ factory.createIdentifier('log')
281
+ ),
282
+ undefined,
283
+ [
284
+ factory.createObjectLiteralExpression(
285
+ [
286
+ factory.createShorthandPropertyAssignment(
287
+ factory.createIdentifier('data')
288
+ ),
289
+ ],
290
+ false
291
+ ),
292
+ ]
293
+ )
294
+ ),
295
+ ]
296
+ )
297
+ );
292
298
  };
@@ -0,0 +1,121 @@
1
+ import type { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/OpenAPIService';
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 {
7
+ createCombinedResultsForEachExpression,
8
+ createCombineFunction,
9
+ createQueriesArrayExpression,
10
+ createResultsForEachExpression,
11
+ } from './createUseQueriesOperationTSDocExample.js';
12
+ import { createOperationMethodCallExpressionExampleNode } from './lib/createOperationMethodCallExpressionExampleNode.js';
13
+
14
+ export const createUseSuspenseQueriesOperationTSDocExample = (
15
+ operation: ServiceOperation,
16
+ serviceVariableName: string
17
+ ) => {
18
+ const factory = ts.factory;
19
+
20
+ const example: string[] = [
21
+ 'Allows you to execute multiple asynchronous data fetching operations concurrently with Suspense support.',
22
+ 'Similar to useQueries but integrates with React Suspense for loading states.',
23
+ '',
24
+ ...createOperationCommonTSDoc(operation),
25
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useSuspenseQueries|`useSuspenseQueries(...)` documentation}',
26
+
27
+ '@example Basic usage with Suspense',
28
+ '```ts',
29
+ ...astToString([
30
+ factory.createVariableStatement(
31
+ undefined,
32
+ factory.createVariableDeclarationList(
33
+ [
34
+ factory.createVariableDeclaration(
35
+ factory.createIdentifier(camelcase(operation.name + '-data')),
36
+ undefined,
37
+ undefined,
38
+ createOperationMethodCallExpressionExampleNode(
39
+ operation,
40
+ {
41
+ serviceVariableName,
42
+ operationMethodName: 'useSuspenseQueries',
43
+ },
44
+ [
45
+ factory.createObjectLiteralExpression(
46
+ [
47
+ factory.createPropertyAssignment(
48
+ factory.createIdentifier('queries'),
49
+ createQueriesArrayExpression(operation, factory)
50
+ ),
51
+ ],
52
+ true
53
+ ),
54
+ ]
55
+ )
56
+ ),
57
+ ],
58
+ ts.NodeFlags.Const
59
+ )
60
+ ),
61
+ createResultsForEachExpression(
62
+ camelcase(operation.name + '-results'),
63
+ factory
64
+ ),
65
+ ])
66
+ .trim()
67
+ .split('\n'),
68
+ '```',
69
+
70
+ '@example With data transformation using combine',
71
+ '```ts',
72
+ ...astToString([
73
+ factory.createVariableStatement(
74
+ undefined,
75
+ factory.createVariableDeclarationList(
76
+ [
77
+ factory.createVariableDeclaration(
78
+ factory.createIdentifier(
79
+ camelcase(operation.name + '-combined-data')
80
+ ),
81
+ undefined,
82
+ undefined,
83
+ createOperationMethodCallExpressionExampleNode(
84
+ operation,
85
+ {
86
+ serviceVariableName,
87
+ operationMethodName: 'useSuspenseQueries',
88
+ },
89
+ [
90
+ factory.createObjectLiteralExpression(
91
+ [
92
+ factory.createPropertyAssignment(
93
+ factory.createIdentifier('combine'),
94
+ createCombineFunction(factory)
95
+ ),
96
+ factory.createPropertyAssignment(
97
+ factory.createIdentifier('queries'),
98
+ createQueriesArrayExpression(operation, factory)
99
+ ),
100
+ ],
101
+ true
102
+ ),
103
+ ]
104
+ )
105
+ ),
106
+ ],
107
+ ts.NodeFlags.Const
108
+ )
109
+ ),
110
+ createCombinedResultsForEachExpression(
111
+ camelcase(operation.name + '-combined-data'),
112
+ factory
113
+ ),
114
+ ])
115
+ .trim()
116
+ .split('\n'),
117
+ '```',
118
+ ];
119
+
120
+ return example;
121
+ };
@@ -0,0 +1,77 @@
1
+ import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/OpenAPIService';
2
+ import ts from 'typescript';
3
+ import { createOperationCommonTSDoc } from '../../lib/createOperationCommonTSDoc.js';
4
+ import { astToString } from '../astToString.js';
5
+ import { createOperationMethodCallExpressionExampleNode } from './lib/createOperationMethodCallExpressionExampleNode.js';
6
+ import { createOperationMethodParametersExampleNodes } from './lib/createOperationMethodParametersExampleNodes.js';
7
+
8
+ export const createUseSuspenseQueryOperationTSDocExample = (
9
+ operation: ServiceOperation,
10
+ serviceVariableName: string
11
+ ) => {
12
+ const example: string[] = [
13
+ 'Performs asynchronous data fetching with Suspense support.',
14
+ 'Similar to useQuery but integrates with React Suspense for loading states.',
15
+ '',
16
+ ...createOperationCommonTSDoc(operation),
17
+ '@see {@link https://openapi-qraft.github.io/openapi-qraft/docs/hooks/useSuspenseQuery|`useSuspenseQuery(...)` documentation}',
18
+ ];
19
+
20
+ if (
21
+ !operation.parameters?.length ||
22
+ operation.parameters.every((parameter) => !parameter.required)
23
+ ) {
24
+ example.push(
25
+ '@example Suspense Query without parameters',
26
+ '```ts',
27
+ ...(
28
+ 'const data = ' +
29
+ astToString(
30
+ createOperationMethodCallExpressionExampleNode(
31
+ operation,
32
+ {
33
+ serviceVariableName,
34
+ operationMethodName: 'useSuspenseQuery',
35
+ },
36
+ undefined
37
+ )
38
+ )
39
+ )
40
+ .trim()
41
+ .split('\n'),
42
+ '```'
43
+ );
44
+ }
45
+
46
+ if (operation.parameters?.length) {
47
+ const factory = ts.factory;
48
+
49
+ example.push(
50
+ '@example Suspense Query with parameters',
51
+ '```ts',
52
+ ...(
53
+ 'const data = ' +
54
+ astToString(
55
+ createOperationMethodCallExpressionExampleNode(
56
+ operation,
57
+ {
58
+ serviceVariableName,
59
+ operationMethodName: 'useSuspenseQuery',
60
+ },
61
+ [
62
+ factory.createObjectLiteralExpression(
63
+ createOperationMethodParametersExampleNodes(operation),
64
+ true
65
+ ),
66
+ ]
67
+ )
68
+ )
69
+ )
70
+ .trim()
71
+ .split('\n'),
72
+ '```'
73
+ );
74
+ }
75
+
76
+ return example;
77
+ };