@openapi-qraft/tanstack-query-react-plugin 2.6.4 → 2.7.1

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 (79) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/generateCode.d.ts +4 -2
  3. package/dist/generateCode.d.ts.map +1 -1
  4. package/dist/generateCode.js +15 -11
  5. package/dist/generateCode.js.map +1 -1
  6. package/dist/plugin.d.ts.map +1 -1
  7. package/dist/plugin.js +42 -5
  8. package/dist/plugin.js.map +1 -1
  9. package/dist/ts-factory/OverrideImportType.d.ts +25 -0
  10. package/dist/ts-factory/OverrideImportType.d.ts.map +1 -0
  11. package/dist/ts-factory/OverrideImportType.js +2 -0
  12. package/dist/ts-factory/OverrideImportType.js.map +1 -0
  13. package/dist/ts-factory/getCreateAPIClientFactory.d.ts +2 -0
  14. package/dist/ts-factory/getCreateAPIClientFactory.d.ts.map +1 -1
  15. package/dist/ts-factory/getCreateAPIClientFactory.js +23 -19
  16. package/dist/ts-factory/getCreateAPIClientFactory.js.map +1 -1
  17. package/dist/ts-factory/getCreatePredefinedParametersRequestFnFactory.d.ts +3 -1
  18. package/dist/ts-factory/getCreatePredefinedParametersRequestFnFactory.d.ts.map +1 -1
  19. package/dist/ts-factory/getCreatePredefinedParametersRequestFnFactory.js +23 -5
  20. package/dist/ts-factory/getCreatePredefinedParametersRequestFnFactory.js.map +1 -1
  21. package/dist/ts-factory/getOverriddenImportDeclarationsFactory.d.ts +4 -0
  22. package/dist/ts-factory/getOverriddenImportDeclarationsFactory.d.ts.map +1 -0
  23. package/dist/ts-factory/getOverriddenImportDeclarationsFactory.js +25 -0
  24. package/dist/ts-factory/getOverriddenImportDeclarationsFactory.js.map +1 -0
  25. package/dist/ts-factory/getServiceFactory.d.ts +2 -1
  26. package/dist/ts-factory/getServiceFactory.d.ts.map +1 -1
  27. package/dist/ts-factory/getServiceFactory.js +20 -11
  28. package/dist/ts-factory/getServiceFactory.js.map +1 -1
  29. package/dist/ts-factory/getServiceIndexFactory.d.ts +1 -1
  30. package/dist/ts-factory/service-operation.generated/ServiceOperationCancelQueries.js +1 -1
  31. package/dist/ts-factory/service-operation.generated/ServiceOperationCancelQueries.js.map +1 -1
  32. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.js +1 -1
  33. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueriesData.js.map +1 -1
  34. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryState.js +1 -1
  35. package/dist/ts-factory/service-operation.generated/ServiceOperationGetQueryState.js.map +1 -1
  36. package/dist/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.js +1 -1
  37. package/dist/ts-factory/service-operation.generated/ServiceOperationInvalidateQueries.js.map +1 -1
  38. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.d.ts.map +1 -1
  39. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.js +4 -9
  40. package/dist/ts-factory/service-operation.generated/ServiceOperationIsMutatingQueries.js.map +1 -1
  41. package/dist/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.js +1 -1
  42. package/dist/ts-factory/service-operation.generated/ServiceOperationRefetchQueries.js.map +1 -1
  43. package/dist/ts-factory/service-operation.generated/ServiceOperationResetQueries.js +1 -1
  44. package/dist/ts-factory/service-operation.generated/ServiceOperationResetQueries.js.map +1 -1
  45. package/dist/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.js +1 -1
  46. package/dist/ts-factory/service-operation.generated/ServiceOperationSetInfiniteQueryData.js.map +1 -1
  47. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.js +1 -1
  48. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueriesData.js.map +1 -1
  49. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueryData.js +1 -1
  50. package/dist/ts-factory/service-operation.generated/ServiceOperationSetQueryData.js.map +1 -1
  51. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.d.ts.map +1 -1
  52. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.js +4 -9
  53. package/dist/ts-factory/service-operation.generated/ServiceOperationUseInfiniteQuery.js.map +1 -1
  54. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.d.ts.map +1 -1
  55. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.js +4 -9
  56. package/dist/ts-factory/service-operation.generated/ServiceOperationUseIsMutating.js.map +1 -1
  57. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.d.ts.map +1 -1
  58. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.js +5 -16
  59. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutation.js.map +1 -1
  60. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.d.ts.map +1 -1
  61. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.js +7 -18
  62. package/dist/ts-factory/service-operation.generated/ServiceOperationUseMutationState.js.map +1 -1
  63. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.d.ts.map +1 -1
  64. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.js +3 -8
  65. package/dist/ts-factory/service-operation.generated/ServiceOperationUseQuery.js.map +1 -1
  66. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.d.ts.map +1 -1
  67. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.js +3 -5
  68. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseInfiniteQuery.js.map +1 -1
  69. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.d.ts.map +1 -1
  70. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.js +2 -4
  71. package/dist/ts-factory/service-operation.generated/ServiceOperationUseSuspenseQuery.js.map +1 -1
  72. package/package.json +3 -3
  73. package/src/generateCode.ts +36 -13
  74. package/src/plugin.ts +83 -7
  75. package/src/ts-factory/OverrideImportType.ts +27 -0
  76. package/src/ts-factory/getCreateAPIClientFactory.ts +58 -68
  77. package/src/ts-factory/getCreatePredefinedParametersRequestFnFactory.ts +42 -19
  78. package/src/ts-factory/getOverriddenImportDeclarationsFactory.ts +53 -0
  79. package/src/ts-factory/getServiceFactory.ts +41 -15
@@ -1,9 +1,11 @@
1
+ import type { OverrideImportType } from './OverrideImportType.js';
1
2
  import { isReadOnlyOperation } from '@openapi-qraft/plugin/lib/isReadOnlyOperation';
2
3
  import { ServiceOperation } from '@openapi-qraft/plugin/lib/open-api/OpenAPIService';
3
4
  import camelCase from 'camelcase';
4
5
  import ts from 'typescript';
5
6
  import { createOperationCommonTSDoc } from '../lib/createOperationCommonTSDoc.js';
6
7
  import { filterUnusedTypes } from './filterUnusedTypes.js';
8
+ import { getOverriddenImportDeclarationsFactory } from './getOverriddenImportDeclarationsFactory.js';
7
9
  import {
8
10
  createServicesMutationOperationNodes,
9
11
  createServicesQueryOperationNodes,
@@ -22,7 +24,10 @@ type Service = { typeName: string; variableName: string };
22
24
  export const getServiceFactory = (
23
25
  service: Service,
24
26
  operations: ServiceOperation[],
25
- options: ServiceFactoryOptions
27
+ options: ServiceFactoryOptions,
28
+ serviceImportTypeOverrides:
29
+ | OverrideImportType[keyof OverrideImportType]
30
+ | undefined
26
31
  ) => {
27
32
  const operationVariables = operations.map((operation) =>
28
33
  getServiceOperationVariableFactory(service.typeName, operation)
@@ -37,20 +42,21 @@ export const getServiceFactory = (
37
42
  ...getOperationsTypes(operations, options),
38
43
  ];
39
44
 
40
- const internalModulesTypeImports = filterUnusedTypes(
45
+ const moduleTypeImports = filterUnusedTypes(
41
46
  getModuleTypeImports(operations, options),
42
47
  mainNodes
43
48
  );
44
- internalModulesTypeImports['@openapi-qraft/tanstack-query-react-types'] = [
45
- ...(internalModulesTypeImports[
46
- '@openapi-qraft/tanstack-query-react-types'
47
- ] ?? []),
48
- 'QraftServiceOperationsToken',
49
- ];
49
+
50
+ moduleTypeImports['@openapi-qraft/tanstack-query-react-types']?.push(
51
+ 'QraftServiceOperationsToken'
52
+ );
50
53
 
51
54
  const importNodes = [
52
55
  getOpenAPISchemaImportsFactory(options.openapiTypesImportPath),
53
- ...getServiceOperationImportsFactory(internalModulesTypeImports),
56
+ ...getServiceOperationImportsFactory(
57
+ moduleTypeImports,
58
+ serviceImportTypeOverrides
59
+ ),
54
60
  ];
55
61
 
56
62
  return [...importNodes, ...mainNodes];
@@ -77,19 +83,30 @@ const getOpenAPISchemaImportsFactory = (schemaTypesPath: string) => {
77
83
  };
78
84
 
79
85
  const getServiceOperationImportsFactory = (
80
- moduleImports: Record<string, string[]>
86
+ moduleImports: Record<string, string[]>,
87
+ serviceImportTypeOverrides:
88
+ | OverrideImportType[keyof OverrideImportType]
89
+ | undefined
81
90
  ) => {
82
91
  const factory = ts.factory;
83
92
 
84
- return Object.entries(moduleImports).map(
85
- ([moduleName, importSpecifierNames]) => {
93
+ const standardImports = Object.entries(moduleImports)
94
+ .map(([moduleName, importSpecifierNames]) => {
95
+ const filteredSpecifiers = serviceImportTypeOverrides?.[moduleName]
96
+ ? importSpecifierNames.filter(
97
+ (specifier) => !serviceImportTypeOverrides[moduleName][specifier]
98
+ )
99
+ : importSpecifierNames;
100
+
101
+ if (!filteredSpecifiers.length) return null;
102
+
86
103
  return factory.createImportDeclaration(
87
104
  undefined,
88
105
  factory.createImportClause(
89
106
  true,
90
107
  undefined,
91
108
  factory.createNamedImports(
92
- importSpecifierNames.map((specifier) =>
109
+ filteredSpecifiers.map((specifier) =>
93
110
  factory.createImportSpecifier(
94
111
  false,
95
112
  undefined,
@@ -100,8 +117,17 @@ const getServiceOperationImportsFactory = (
100
117
  ),
101
118
  factory.createStringLiteral(moduleName)
102
119
  );
103
- }
104
- );
120
+ })
121
+ .filter((importDecl) => !!importDecl);
122
+
123
+ const customImports = serviceImportTypeOverrides
124
+ ? getOverriddenImportDeclarationsFactory(
125
+ moduleImports,
126
+ serviceImportTypeOverrides
127
+ )
128
+ : [];
129
+
130
+ return [...standardImports, ...customImports];
105
131
  };
106
132
 
107
133
  const getServiceInterfaceFactory = (