@kubb/plugin-vue-query 3.5.2 → 3.5.4

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 (35) hide show
  1. package/dist/{chunk-HUKJLE4A.cjs → chunk-4TLHLSWS.cjs} +328 -34
  2. package/dist/chunk-4TLHLSWS.cjs.map +1 -0
  3. package/dist/{chunk-N6FQE7MO.js → chunk-5AVTA36R.js} +16 -8
  4. package/dist/chunk-5AVTA36R.js.map +1 -0
  5. package/dist/{chunk-KGJSQLZT.cjs → chunk-HJ3OZP57.cjs} +16 -6
  6. package/dist/chunk-HJ3OZP57.cjs.map +1 -0
  7. package/dist/{chunk-VTRFZL5E.js → chunk-TPCLQISL.js} +315 -25
  8. package/dist/chunk-TPCLQISL.js.map +1 -0
  9. package/dist/components.cjs +8 -8
  10. package/dist/components.js +1 -1
  11. package/dist/generators.cjs +5 -5
  12. package/dist/generators.js +2 -2
  13. package/dist/index.cjs +5 -5
  14. package/dist/index.js +2 -2
  15. package/package.json +10 -10
  16. package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +1 -1
  17. package/src/generators/__snapshots__/clientGetImportPath.ts +1 -1
  18. package/src/generators/__snapshots__/clientPostImportPath.ts +1 -1
  19. package/src/generators/__snapshots__/findByTags.ts +1 -1
  20. package/src/generators/__snapshots__/findByTagsObject.ts +1 -1
  21. package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +1 -1
  22. package/src/generators/__snapshots__/findByTagsWithCustomQueryKey.ts +1 -1
  23. package/src/generators/__snapshots__/findByTagsWithZod.ts +1 -1
  24. package/src/generators/__snapshots__/findInfiniteByTags.ts +2 -2
  25. package/src/generators/__snapshots__/findInfiniteByTagsCursor.ts +2 -2
  26. package/src/generators/__snapshots__/postAsQuery.ts +1 -1
  27. package/src/generators/__snapshots__/updatePetById.ts +1 -1
  28. package/src/generators/__snapshots__/updatePetByIdPathParamsObject.ts +1 -1
  29. package/src/generators/infiniteQueryGenerator.tsx +29 -16
  30. package/src/generators/mutationGenerator.tsx +27 -16
  31. package/src/generators/queryGenerator.tsx +28 -16
  32. package/dist/chunk-HUKJLE4A.cjs.map +0 -1
  33. package/dist/chunk-KGJSQLZT.cjs.map +0 -1
  34. package/dist/chunk-N6FQE7MO.js.map +0 -1
  35. package/dist/chunk-VTRFZL5E.js.map +0 -1
@@ -1,4 +1,4 @@
1
- export { infiniteQueryGenerator, mutationGenerator, queryGenerator } from './chunk-VTRFZL5E.js';
2
- import './chunk-N6FQE7MO.js';
1
+ export { infiniteQueryGenerator, mutationGenerator, queryGenerator } from './chunk-TPCLQISL.js';
2
+ import './chunk-5AVTA36R.js';
3
3
  //# sourceMappingURL=generators.js.map
4
4
  //# sourceMappingURL=generators.js.map
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkHUKJLE4A_cjs = require('./chunk-HUKJLE4A.cjs');
4
- var chunkKGJSQLZT_cjs = require('./chunk-KGJSQLZT.cjs');
3
+ var chunk4TLHLSWS_cjs = require('./chunk-4TLHLSWS.cjs');
4
+ var chunkHJ3OZP57_cjs = require('./chunk-HJ3OZP57.cjs');
5
5
  var path = require('path');
6
6
  var core = require('@kubb/core');
7
7
  var transformers = require('@kubb/core/transformers');
@@ -29,9 +29,9 @@ var pluginVueQuery = core.createPlugin((options) => {
29
29
  mutation = {},
30
30
  query = {},
31
31
  paramsCasing,
32
- mutationKey = chunkKGJSQLZT_cjs.MutationKey.getTransformer,
33
- queryKey = chunkKGJSQLZT_cjs.QueryKey.getTransformer,
34
- generators = [chunkHUKJLE4A_cjs.queryGenerator, chunkHUKJLE4A_cjs.infiniteQueryGenerator, chunkHUKJLE4A_cjs.mutationGenerator].filter(Boolean)
32
+ mutationKey = chunkHJ3OZP57_cjs.MutationKey.getTransformer,
33
+ queryKey = chunkHJ3OZP57_cjs.QueryKey.getTransformer,
34
+ generators = [chunk4TLHLSWS_cjs.queryGenerator, chunk4TLHLSWS_cjs.infiniteQueryGenerator, chunk4TLHLSWS_cjs.mutationGenerator].filter(Boolean)
35
35
  } = options;
36
36
  return {
37
37
  name: pluginVueQueryName,
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { queryGenerator, infiniteQueryGenerator, mutationGenerator } from './chunk-VTRFZL5E.js';
2
- import { MutationKey, QueryKey } from './chunk-N6FQE7MO.js';
1
+ import { queryGenerator, infiniteQueryGenerator, mutationGenerator } from './chunk-TPCLQISL.js';
2
+ import { MutationKey, QueryKey } from './chunk-5AVTA36R.js';
3
3
  import path from 'node:path';
4
4
  import { createPlugin, FileManager, PluginManager } from '@kubb/core';
5
5
  import { camelCase, pascalCase } from '@kubb/core/transformers';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-vue-query",
3
- "version": "3.5.2",
3
+ "version": "3.5.4",
4
4
  "description": "Generator vue-query hooks",
5
5
  "keywords": [
6
6
  "faker",
@@ -63,21 +63,21 @@
63
63
  ],
64
64
  "dependencies": {
65
65
  "remeda": "^2.19.2",
66
- "@kubb/core": "3.5.2",
67
- "@kubb/fs": "3.5.2",
68
- "@kubb/oas": "3.5.2",
69
- "@kubb/plugin-oas": "3.5.2",
70
- "@kubb/plugin-ts": "3.5.2",
71
- "@kubb/plugin-zod": "3.5.2",
72
- "@kubb/react": "3.5.2"
66
+ "@kubb/core": "3.5.4",
67
+ "@kubb/fs": "3.5.4",
68
+ "@kubb/oas": "3.5.4",
69
+ "@kubb/plugin-oas": "3.5.4",
70
+ "@kubb/plugin-ts": "3.5.4",
71
+ "@kubb/plugin-zod": "3.5.4",
72
+ "@kubb/react": "3.5.4"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@types/react": "^18.3.18",
76
76
  "react": "^18.3.1",
77
77
  "tsup": "^8.3.5",
78
78
  "typescript": "^5.7.3",
79
- "@kubb/config-ts": "3.5.2",
80
- "@kubb/config-tsup": "3.5.2"
79
+ "@kubb/config-ts": "3.5.4",
80
+ "@kubb/config-tsup": "3.5.4"
81
81
  },
82
82
  "peerDependencies": {
83
83
  "@kubb/react": "^3.0.0"
@@ -14,7 +14,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -14,7 +14,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -12,7 +12,7 @@ export type UpdatePetWithFormMutationKey = ReturnType<typeof updatePetWithFormMu
12
12
  * @summary Updates a pet in the store with form data
13
13
  * {@link /pet/:petId}
14
14
  */
15
- async function updatePetWithForm(
15
+ export async function updatePetWithForm(
16
16
  petId: UpdatePetWithFormPathParams['petId'],
17
17
  data?: UpdatePetWithFormMutationRequest,
18
18
  params?: UpdatePetWithFormQueryParams,
@@ -14,7 +14,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -14,7 +14,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(
17
+ export async function findPetsByTags(
18
18
  { headers, params }: { headers: FindPetsByTagsHeaderParams; params?: FindPetsByTagsQueryParams },
19
19
  config: Partial<RequestConfig> = {},
20
20
  ) {
@@ -14,7 +14,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -15,7 +15,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
15
15
  * @summary Finds Pets by tags
16
16
  * {@link /pet/findByTags}
17
17
  */
18
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
+ export async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
19
19
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
20
20
  method: 'GET',
21
21
  url: `/pet/findByTags`,
@@ -14,7 +14,7 @@ export type FindPetsByTagsQueryKey = ReturnType<typeof findPetsByTagsQueryKey>
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -14,7 +14,7 @@ export type FindPetsByTagsInfiniteQueryKey = ReturnType<typeof findPetsByTagsInf
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTagsInfinite(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -39,7 +39,7 @@ export function findPetsByTagsInfiniteQueryOptions(
39
39
  if (params) {
40
40
  params['pageSize'] = pageParam as unknown as FindPetsByTagsQueryParams['pageSize']
41
41
  }
42
- return findPetsByTags(headers, params, config)
42
+ return findPetsByTagsInfinite(headers, params, config)
43
43
  },
44
44
  initialPageParam: 0,
45
45
  getNextPageParam: (lastPage, _allPages, lastPageParam) => (Array.isArray(lastPage) && lastPage.length === 0 ? undefined : lastPageParam + 1),
@@ -14,7 +14,7 @@ export type FindPetsByTagsInfiniteQueryKey = ReturnType<typeof findPetsByTagsInf
14
14
  * @summary Finds Pets by tags
15
15
  * {@link /pet/findByTags}
16
16
  */
17
- async function findPetsByTags(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
17
+ export async function findPetsByTagsInfinite(headers: FindPetsByTagsHeaderParams, params?: FindPetsByTagsQueryParams, config: Partial<RequestConfig> = {}) {
18
18
  const res = await client<FindPetsByTagsQueryResponse, ResponseErrorConfig<FindPetsByTags400>, unknown>({
19
19
  method: 'GET',
20
20
  url: `/pet/findByTags`,
@@ -39,7 +39,7 @@ export function findPetsByTagsInfiniteQueryOptions(
39
39
  if (params) {
40
40
  params['pageSize'] = pageParam as unknown as FindPetsByTagsQueryParams['pageSize']
41
41
  }
42
- return findPetsByTags(headers, params, config)
42
+ return findPetsByTagsInfinite(headers, params, config)
43
43
  },
44
44
  initialPageParam: 0,
45
45
  getNextPageParam: (lastPage) => lastPage['cursor'],
@@ -17,7 +17,7 @@ export type UpdatePetWithFormQueryKey = ReturnType<typeof updatePetWithFormQuery
17
17
  * @summary Updates a pet in the store with form data
18
18
  * {@link /pet/:petId}
19
19
  */
20
- async function updatePetWithForm(
20
+ export async function updatePetWithForm(
21
21
  petId: UpdatePetWithFormPathParams['petId'],
22
22
  data?: UpdatePetWithFormMutationRequest,
23
23
  params?: UpdatePetWithFormQueryParams,
@@ -12,7 +12,7 @@ export type UpdatePetWithFormMutationKey = ReturnType<typeof updatePetWithFormMu
12
12
  * @summary Updates a pet in the store with form data
13
13
  * {@link /pet/:petId}
14
14
  */
15
- async function updatePetWithForm(
15
+ export async function updatePetWithForm(
16
16
  petId: UpdatePetWithFormPathParams['petId'],
17
17
  data?: UpdatePetWithFormMutationRequest,
18
18
  params?: UpdatePetWithFormQueryParams,
@@ -12,7 +12,7 @@ export type UpdatePetWithFormMutationKey = ReturnType<typeof updatePetWithFormMu
12
12
  * @summary Updates a pet in the store with form data
13
13
  * {@link /pet/:petId}
14
14
  */
15
- async function updatePetWithForm(
15
+ export async function updatePetWithForm(
16
16
  { petId }: { petId: UpdatePetWithFormPathParams['petId'] },
17
17
  data?: UpdatePetWithFormMutationRequest,
18
18
  params?: UpdatePetWithFormQueryParams,
@@ -1,3 +1,4 @@
1
+ import { pluginClientName } from '@kubb/plugin-client'
1
2
  import { Client } from '@kubb/plugin-client/components'
2
3
  import { createReactGenerator } from '@kubb/plugin-oas'
3
4
  import { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'
@@ -16,6 +17,7 @@ export const infiniteQueryGenerator = createReactGenerator<PluginVueQuery>({
16
17
  plugin: {
17
18
  options: { output },
18
19
  },
20
+ pluginManager,
19
21
  } = useApp<PluginVueQuery>()
20
22
  const oas = useOas()
21
23
  const { getSchemas, getName, getFile } = useOperationManager()
@@ -33,8 +35,18 @@ export const infiniteQueryGenerator = createReactGenerator<PluginVueQuery>({
33
35
  file: getFile(operation, { prefix: 'use', suffix: 'infinite' }),
34
36
  }
35
37
 
38
+ const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])
36
39
  const client = {
37
- name: getName(operation, { type: 'function' }),
40
+ name: hasClientPlugin
41
+ ? getName(operation, {
42
+ type: 'function',
43
+ pluginKey: [pluginClientName],
44
+ })
45
+ : getName(operation, {
46
+ type: 'function',
47
+ suffix: 'infinite',
48
+ }),
49
+ file: getFile(operation, { pluginKey: [pluginClientName] }),
38
50
  }
39
51
 
40
52
  const queryOptions = {
@@ -72,7 +84,8 @@ export const infiniteQueryGenerator = createReactGenerator<PluginVueQuery>({
72
84
  {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}
73
85
  <File.Import name={['unref']} path="vue" />
74
86
  <File.Import name={['MaybeRef']} path="vue" isTypeOnly />
75
- <File.Import name={'client'} path={options.client.importPath} />
87
+ {!hasClientPlugin && <File.Import name={'client'} path={options.client.importPath} />}
88
+ {hasClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}
76
89
  <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />
77
90
  {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}
78
91
  <File.Import
@@ -97,20 +110,20 @@ export const infiniteQueryGenerator = createReactGenerator<PluginVueQuery>({
97
110
  typeSchemas={type.schemas}
98
111
  transformer={options.queryKey}
99
112
  />
100
- <Client
101
- name={client.name}
102
- isExportable={false}
103
- isIndexable={false}
104
- baseURL={options.client.baseURL}
105
- operation={operation}
106
- typeSchemas={type.schemas}
107
- zodSchemas={zod.schemas}
108
- dataReturnType={options.client.dataReturnType}
109
- paramsCasing={options.paramsCasing}
110
- paramsType={options.paramsType}
111
- pathParamsType={options.pathParamsType}
112
- parser={options.parser}
113
- />
113
+ {!hasClientPlugin && (
114
+ <Client
115
+ name={client.name}
116
+ baseURL={options.client.baseURL}
117
+ operation={operation}
118
+ typeSchemas={type.schemas}
119
+ zodSchemas={zod.schemas}
120
+ dataReturnType={options.client.dataReturnType}
121
+ paramsCasing={options.paramsCasing}
122
+ paramsType={options.paramsType}
123
+ pathParamsType={options.pathParamsType}
124
+ parser={options.parser}
125
+ />
126
+ )}
114
127
  {options.infinite && (
115
128
  <>
116
129
  <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />
@@ -17,6 +17,7 @@ export const mutationGenerator = createReactGenerator<PluginVueQuery>({
17
17
  plugin: {
18
18
  options: { output },
19
19
  },
20
+ pluginManager,
20
21
  } = useApp<PluginVueQuery>()
21
22
  const oas = useOas()
22
23
  const { getSchemas, getName, getFile } = useOperationManager()
@@ -45,8 +46,17 @@ export const mutationGenerator = createReactGenerator<PluginVueQuery>({
45
46
  schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),
46
47
  }
47
48
 
49
+ const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])
48
50
  const client = {
49
- name: getName(operation, { type: 'function' }),
51
+ name: hasClientPlugin
52
+ ? getName(operation, {
53
+ type: 'function',
54
+ pluginKey: [pluginClientName],
55
+ })
56
+ : getName(operation, {
57
+ type: 'function',
58
+ }),
59
+ file: getFile(operation, { pluginKey: [pluginClientName] }),
50
60
  }
51
61
 
52
62
  const mutationKey = {
@@ -68,7 +78,8 @@ export const mutationGenerator = createReactGenerator<PluginVueQuery>({
68
78
  >
69
79
  {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={mutation.file.path} path={zod.file.path} />}
70
80
  <File.Import name={['MaybeRef']} path="vue" isTypeOnly />
71
- <File.Import name={'client'} path={options.client.importPath} />
81
+ {!hasClientPlugin && <File.Import name={'client'} path={options.client.importPath} />}
82
+ {!!hasClientPlugin && <File.Import name={[client.name]} root={mutation.file.path} path={client.file.path} />}
72
83
  <File.Import name={['RequestConfig', 'ResponseConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />
73
84
  <File.Import
74
85
  name={[
@@ -92,20 +103,20 @@ export const mutationGenerator = createReactGenerator<PluginVueQuery>({
92
103
  typeSchemas={type.schemas}
93
104
  transformer={options.mutationKey}
94
105
  />
95
- <Client
96
- name={client.name}
97
- isExportable={false}
98
- isIndexable={false}
99
- baseURL={options.client.baseURL}
100
- operation={operation}
101
- typeSchemas={type.schemas}
102
- zodSchemas={zod.schemas}
103
- dataReturnType={options.client.dataReturnType}
104
- paramsCasing={options.paramsCasing}
105
- paramsType={options.paramsType}
106
- pathParamsType={options.pathParamsType}
107
- parser={options.parser}
108
- />
106
+ {!hasClientPlugin && (
107
+ <Client
108
+ name={client.name}
109
+ baseURL={options.client.baseURL}
110
+ operation={operation}
111
+ typeSchemas={type.schemas}
112
+ zodSchemas={zod.schemas}
113
+ dataReturnType={options.client.dataReturnType}
114
+ paramsCasing={options.paramsCasing}
115
+ paramsType={options.paramsType}
116
+ pathParamsType={options.pathParamsType}
117
+ parser={options.parser}
118
+ />
119
+ )}
109
120
  {options.mutation && (
110
121
  <>
111
122
  <File.Import name={['useMutation']} path={importPath} />
@@ -1,3 +1,4 @@
1
+ import { pluginClientName } from '@kubb/plugin-client'
1
2
  import { Client } from '@kubb/plugin-client/components'
2
3
  import { createReactGenerator } from '@kubb/plugin-oas'
3
4
  import { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'
@@ -16,6 +17,7 @@ export const queryGenerator = createReactGenerator<PluginVueQuery>({
16
17
  plugin: {
17
18
  options: { output },
18
19
  },
20
+ pluginManager,
19
21
  } = useApp<PluginVueQuery>()
20
22
  const oas = useOas()
21
23
  const { getSchemas, getName, getFile } = useOperationManager()
@@ -32,8 +34,17 @@ export const queryGenerator = createReactGenerator<PluginVueQuery>({
32
34
  file: getFile(operation, { prefix: 'use' }),
33
35
  }
34
36
 
37
+ const hasClientPlugin = !!pluginManager.getPluginByKey([pluginClientName])
35
38
  const client = {
36
- name: getName(operation, { type: 'function' }),
39
+ name: hasClientPlugin
40
+ ? getName(operation, {
41
+ type: 'function',
42
+ pluginKey: [pluginClientName],
43
+ })
44
+ : getName(operation, {
45
+ type: 'function',
46
+ }),
47
+ file: getFile(operation, { pluginKey: [pluginClientName] }),
37
48
  }
38
49
 
39
50
  const queryOptions = {
@@ -71,7 +82,8 @@ export const queryGenerator = createReactGenerator<PluginVueQuery>({
71
82
  {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}
72
83
  <File.Import name={['unref']} path="vue" />
73
84
  <File.Import name={['MaybeRef']} path="vue" isTypeOnly />
74
- <File.Import name={'client'} path={options.client.importPath} />
85
+ {!hasClientPlugin && <File.Import name={'client'} path={options.client.importPath} />}
86
+ {!!hasClientPlugin && <File.Import name={[client.name]} root={query.file.path} path={client.file.path} />}
75
87
  <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />
76
88
  {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}
77
89
  <File.Import
@@ -96,20 +108,20 @@ export const queryGenerator = createReactGenerator<PluginVueQuery>({
96
108
  typeSchemas={type.schemas}
97
109
  transformer={options.queryKey}
98
110
  />
99
- <Client
100
- name={client.name}
101
- isExportable={false}
102
- isIndexable={false}
103
- baseURL={options.client.baseURL}
104
- operation={operation}
105
- typeSchemas={type.schemas}
106
- zodSchemas={zod.schemas}
107
- dataReturnType={options.client.dataReturnType}
108
- paramsCasing={options.paramsCasing}
109
- paramsType={options.paramsType}
110
- pathParamsType={options.pathParamsType}
111
- parser={options.parser}
112
- />
111
+ {!hasClientPlugin && (
112
+ <Client
113
+ name={client.name}
114
+ baseURL={options.client.baseURL}
115
+ operation={operation}
116
+ typeSchemas={type.schemas}
117
+ zodSchemas={zod.schemas}
118
+ dataReturnType={options.client.dataReturnType}
119
+ paramsCasing={options.paramsCasing}
120
+ paramsType={options.paramsType}
121
+ pathParamsType={options.pathParamsType}
122
+ parser={options.parser}
123
+ />
124
+ )}
113
125
  <File.Import name={['queryOptions']} path={importPath} />
114
126
  <QueryOptions
115
127
  name={queryOptions.name}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/generators/queryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/infiniteQueryGenerator.tsx"],"names":["createReactGenerator","useApp","useOas","useOperationManager","difference","pluginTsName","pluginZodName","jsxs","File","getBanner","getFooter","jsx","QueryKey","Client","QueryOptions","Fragment","Query","MutationKey","Mutation","InfiniteQueryOptions","InfiniteQuery"],"mappings":"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","file":"chunk-HUKJLE4A.cjs","sourcesContent":["import { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginVueQuery } from '../types'\n\nexport const queryGenerator = createReactGenerator<PluginVueQuery>({\n name: 'vue-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginVueQuery>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n const importPath = options.query ? options.query.importPath : '@tanstack/vue-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use' }),\n }\n\n const client = {\n name: getName(operation, { type: 'function' }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'QueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'QueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'QueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n if (!isQuery || isMutation) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={['unref']} path=\"vue\" />\n <File.Import name={['MaybeRef']} path=\"vue\" isTypeOnly />\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n <File.Import name={['queryOptions']} path={importPath} />\n <QueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n paramsCasing={options.paramsCasing}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType}\n />\n {options.query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryObserverOptions', 'UseQueryReturnType']} path={importPath} isTypeOnly />\n <Query\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import { pluginClientName } from '@kubb/plugin-client'\nimport { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\nexport const mutationGenerator = createReactGenerator<PluginVueQuery>({\n name: 'vue-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginVueQuery>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const isQuery = !!options.query && options.query?.methods.some((method) => operation.method === method)\n const isMutation =\n !isQuery &&\n difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some((method) => operation.method === method)\n\n const importPath = options.mutation ? options.mutation.importPath : '@tanstack/vue-query'\n\n const mutation = {\n name: getName(operation, { type: 'function', prefix: 'use' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n const client = {\n name: getName(operation, { type: 'function' }),\n }\n\n const mutationKey = {\n name: getName(operation, { type: 'const', suffix: 'MutationKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'MutationKey' }),\n }\n\n if (!isMutation) {\n return null\n }\n\n return (\n <File\n baseName={mutation.file.baseName}\n path={mutation.file.path}\n meta={mutation.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={mutation.file.path} path={zod.file.path} />}\n <File.Import name={['MaybeRef']} path=\"vue\" isTypeOnly />\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig', 'ResponseConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={mutation.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <MutationKey\n name={mutationKey.name}\n typeName={mutationKey.typeName}\n operation={operation}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n typeSchemas={type.schemas}\n transformer={options.mutationKey}\n />\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n {options.mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['MutationObserverOptions']} path={importPath} isTypeOnly />\n <Mutation\n name={mutation.name}\n clientName={client.name}\n typeName={mutation.typeName}\n typeSchemas={type.schemas}\n operation={operation}\n paramsCasing={options.paramsCasing}\n dataReturnType={options.client.dataReturnType}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n mutationKeyName={mutationKey.name}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import { Client } from '@kubb/plugin-client/components'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, useApp } from '@kubb/react'\nimport { difference } from 'remeda'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginVueQuery } from '../types'\n\nexport const infiniteQueryGenerator = createReactGenerator<PluginVueQuery>({\n name: 'vue-infinite-query',\n Operation({ options, operation }) {\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginVueQuery>()\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager()\n\n const isQuery = typeof options.query === 'boolean' ? true : options.query?.methods.some((method) => operation.method === method)\n const isMutation = difference(options.mutation ? options.mutation.methods : [], options.query ? options.query.methods : []).some(\n (method) => operation.method === method,\n )\n const isInfinite = isQuery && !!options.infinite\n const importPath = options.query ? options.query.importPath : '@tanstack/vue-query'\n\n const query = {\n name: getName(operation, { type: 'function', prefix: 'use', suffix: 'infinite' }),\n typeName: getName(operation, { type: 'type' }),\n file: getFile(operation, { prefix: 'use', suffix: 'infinite' }),\n }\n\n const client = {\n name: getName(operation, { type: 'function' }),\n }\n\n const queryOptions = {\n name: getName(operation, { type: 'function', suffix: 'InfiniteQueryOptions' }),\n }\n\n const queryKey = {\n name: getName(operation, { type: 'const', suffix: 'InfiniteQueryKey' }),\n typeName: getName(operation, { type: 'type', suffix: 'InfiniteQueryKey' }),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\n //todo remove type?\n schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n }\n\n const zod = {\n file: getFile(operation, { pluginKey: [pluginZodName] }),\n schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n }\n\n if (!isQuery || isMutation || !isInfinite) {\n return null\n }\n\n return (\n <File\n baseName={query.file.baseName}\n path={query.file.path}\n meta={query.file.meta}\n banner={getBanner({ oas, output })}\n footer={getFooter({ oas, output })}\n >\n {options.parser === 'zod' && <File.Import name={[zod.schemas.response.name]} root={query.file.path} path={zod.file.path} />}\n <File.Import name={['unref']} path=\"vue\" />\n <File.Import name={['MaybeRef']} path=\"vue\" isTypeOnly />\n <File.Import name={'client'} path={options.client.importPath} />\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.client.importPath} isTypeOnly />\n {options.client.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />}\n <File.Import\n name={[\n type.schemas.request?.name,\n type.schemas.response.name,\n type.schemas.pathParams?.name,\n type.schemas.queryParams?.name,\n type.schemas.headerParams?.name,\n ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n ].filter(Boolean)}\n root={query.file.path}\n path={type.file.path}\n isTypeOnly\n />\n <QueryKey\n name={queryKey.name}\n typeName={queryKey.typeName}\n operation={operation}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n typeSchemas={type.schemas}\n transformer={options.queryKey}\n />\n <Client\n name={client.name}\n isExportable={false}\n isIndexable={false}\n baseURL={options.client.baseURL}\n operation={operation}\n typeSchemas={type.schemas}\n zodSchemas={zod.schemas}\n dataReturnType={options.client.dataReturnType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n parser={options.parser}\n />\n {options.infinite && (\n <>\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n <InfiniteQueryOptions\n name={queryOptions.name}\n clientName={client.name}\n queryKeyName={queryKey.name}\n typeSchemas={type.schemas}\n paramsType={options.paramsType}\n paramsCasing={options.paramsCasing}\n pathParamsType={options.pathParamsType}\n dataReturnType={options.client.dataReturnType}\n cursorParam={options.infinite.cursorParam}\n initialPageParam={options.infinite.initialPageParam}\n queryParam={options.infinite.queryParam}\n />\n </>\n )}\n {options.infinite && (\n <>\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'InfiniteQueryObserverOptions', 'UseInfiniteQueryReturnType']} path={importPath} isTypeOnly />\n <InfiniteQuery\n name={query.name}\n queryOptionsName={queryOptions.name}\n typeSchemas={type.schemas}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n pathParamsType={options.pathParamsType}\n operation={operation}\n dataReturnType={options.client.dataReturnType}\n queryKeyName={queryKey.name}\n queryKeyTypeName={queryKey.typeName}\n />\n </>\n )}\n </File>\n )\n },\n})\n"]}