@kubb/plugin-react-query 5.0.0-beta.30 → 5.0.0-beta.33
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.
- package/dist/{components-CDmg-RPi.js → components-BVmVgpLX.js} +142 -62
- package/dist/components-BVmVgpLX.js.map +1 -0
- package/dist/{components-MPBTffPl.cjs → components-DLUeLMsz.cjs} +147 -61
- package/dist/components-DLUeLMsz.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +3 -1
- package/dist/components.js +1 -1
- package/dist/{generators-BtsWNz-6.cjs → generators--AcF4Y4n.cjs} +35 -153
- package/dist/generators--AcF4Y4n.cjs.map +1 -0
- package/dist/{generators-Bma51Uar.js → generators-BFn9CLBS.js} +36 -154
- package/dist/generators-BFn9CLBS.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +40 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +40 -10
- package/dist/index.js.map +1 -1
- package/extension.yaml +9 -32
- package/package.json +8 -8
- package/src/components/InfiniteQuery.tsx +13 -8
- package/src/components/InfiniteQueryOptions.tsx +8 -8
- package/src/components/Query.tsx +6 -1
- package/src/components/QueryOptions.tsx +12 -8
- package/src/components/SuspenseInfiniteQueryOptions.tsx +0 -6
- package/src/generators/hookOptionsGenerator.tsx +12 -22
- package/src/generators/infiniteQueryGenerator.tsx +19 -22
- package/src/generators/mutationGenerator.tsx +19 -22
- package/src/generators/queryGenerator.tsx +19 -22
- package/src/generators/suspenseInfiniteQueryGenerator.tsx +19 -22
- package/src/generators/suspenseQueryGenerator.tsx +20 -22
- package/src/plugin.ts +4 -16
- package/dist/components-CDmg-RPi.js.map +0 -1
- package/dist/components-MPBTffPl.cjs.map +0 -1
- package/dist/generators-Bma51Uar.js.map +0 -1
- package/dist/generators-BtsWNz-6.cjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getOperationParameters } from '@internals/shared'
|
|
2
|
-
import { defineGenerator } from '@kubb/core'
|
|
1
|
+
import { getOperationParameters, operationFileEntry } from '@internals/shared'
|
|
2
|
+
import { ast, defineGenerator } from '@kubb/core'
|
|
3
3
|
import { File, jsxRendererSync, Type } from '@kubb/renderer-jsx'
|
|
4
4
|
import type { KubbReactNode } from '@kubb/renderer-jsx/types'
|
|
5
5
|
import { difference } from 'remeda'
|
|
@@ -36,6 +36,7 @@ export const hookOptionsGenerator = defineGenerator<PluginReactQuery>({
|
|
|
36
36
|
const hookOptions: Record<string, string> = {}
|
|
37
37
|
|
|
38
38
|
for (const node of nodes) {
|
|
39
|
+
if (!ast.isHttpOperationNode(node)) continue
|
|
39
40
|
const opOverrides = resolveOperationOverrides(node, override)
|
|
40
41
|
const nodeQuery: QueryOption = 'query' in opOverrides ? (opOverrides.query as QueryOption) : query
|
|
41
42
|
const nodeMutation: MutationOption = 'mutation' in opOverrides ? (opOverrides.mutation as MutationOption) : mutation
|
|
@@ -57,20 +58,14 @@ export const hookOptionsGenerator = defineGenerator<PluginReactQuery>({
|
|
|
57
58
|
if (isQueryOp) {
|
|
58
59
|
const queryOptionsName = resolver.resolveQueryOptionsName(node)
|
|
59
60
|
const queryHookName = resolver.resolveQueryName(node)
|
|
60
|
-
const queryHookFile = resolver.resolveFile(
|
|
61
|
-
{ name: queryHookName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },
|
|
62
|
-
{ root, output, group: group ?? undefined },
|
|
63
|
-
)
|
|
61
|
+
const queryHookFile = resolver.resolveFile(operationFileEntry(node, queryHookName), { root, output, group: group ?? undefined })
|
|
64
62
|
imports.push(<File.Import name={[queryOptionsName]} root={hookOptionsFile.path} path={queryHookFile.path} />)
|
|
65
63
|
hookOptions[queryHookName] = `Partial<ReturnType<typeof ${queryOptionsName}>>`
|
|
66
64
|
|
|
67
65
|
if (isSuspenseOp) {
|
|
68
66
|
const suspenseOptionsName = resolver.resolveSuspenseQueryOptionsName(node)
|
|
69
67
|
const suspenseHookName = resolver.resolveSuspenseQueryName(node)
|
|
70
|
-
const suspenseHookFile = resolver.resolveFile(
|
|
71
|
-
{ name: suspenseHookName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },
|
|
72
|
-
{ root, output, group: group ?? undefined },
|
|
73
|
-
)
|
|
68
|
+
const suspenseHookFile = resolver.resolveFile(operationFileEntry(node, suspenseHookName), { root, output, group: group ?? undefined })
|
|
74
69
|
imports.push(<File.Import name={[suspenseOptionsName]} root={hookOptionsFile.path} path={suspenseHookFile.path} />)
|
|
75
70
|
hookOptions[suspenseHookName] = `Partial<ReturnType<typeof ${suspenseOptionsName}>>`
|
|
76
71
|
}
|
|
@@ -84,20 +79,18 @@ export const hookOptionsGenerator = defineGenerator<PluginReactQuery>({
|
|
|
84
79
|
if (hasQueryParam) {
|
|
85
80
|
const infiniteOptionsName = resolver.resolveInfiniteQueryOptionsName(node)
|
|
86
81
|
const infiniteHookName = resolver.resolveInfiniteQueryName(node)
|
|
87
|
-
const infiniteHookFile = resolver.resolveFile(
|
|
88
|
-
{ name: infiniteHookName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },
|
|
89
|
-
{ root, output, group: group ?? undefined },
|
|
90
|
-
)
|
|
82
|
+
const infiniteHookFile = resolver.resolveFile(operationFileEntry(node, infiniteHookName), { root, output, group: group ?? undefined })
|
|
91
83
|
imports.push(<File.Import name={[infiniteOptionsName]} root={hookOptionsFile.path} path={infiniteHookFile.path} />)
|
|
92
84
|
hookOptions[infiniteHookName] = `Partial<ReturnType<typeof ${infiniteOptionsName}>>`
|
|
93
85
|
|
|
94
86
|
if (isSuspenseOp) {
|
|
95
87
|
const suspenseInfiniteOptionsName = resolver.resolveSuspenseInfiniteQueryOptionsName(node)
|
|
96
88
|
const suspenseInfiniteHookName = resolver.resolveSuspenseInfiniteQueryName(node)
|
|
97
|
-
const suspenseInfiniteHookFile = resolver.resolveFile(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
89
|
+
const suspenseInfiniteHookFile = resolver.resolveFile(operationFileEntry(node, suspenseInfiniteHookName), {
|
|
90
|
+
root,
|
|
91
|
+
output,
|
|
92
|
+
group: group ?? undefined,
|
|
93
|
+
})
|
|
101
94
|
imports.push(<File.Import name={[suspenseInfiniteOptionsName]} root={hookOptionsFile.path} path={suspenseInfiniteHookFile.path} />)
|
|
102
95
|
hookOptions[suspenseInfiniteHookName] = `Partial<ReturnType<typeof ${suspenseInfiniteOptionsName}>>`
|
|
103
96
|
}
|
|
@@ -108,10 +101,7 @@ export const hookOptionsGenerator = defineGenerator<PluginReactQuery>({
|
|
|
108
101
|
if (isMutationOp) {
|
|
109
102
|
const mutationOptionsName = resolver.resolveMutationOptionsName(node)
|
|
110
103
|
const mutationHookName = resolver.resolveMutationName(node)
|
|
111
|
-
const mutationHookFile = resolver.resolveFile(
|
|
112
|
-
{ name: mutationHookName, extname: '.ts', tag: node.tags[0] ?? 'default', path: node.path },
|
|
113
|
-
{ root, output, group: group ?? undefined },
|
|
114
|
-
)
|
|
104
|
+
const mutationHookFile = resolver.resolveFile(operationFileEntry(node, mutationHookName), { root, output, group: group ?? undefined })
|
|
115
105
|
imports.push(<File.Import name={[mutationOptionsName]} root={hookOptionsFile.path} path={mutationHookFile.path} />)
|
|
116
106
|
hookOptions[mutationHookName] = `Partial<ReturnType<typeof ${mutationOptionsName}>>`
|
|
117
107
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
|
-
import { getOperationParameters, resolveOperationTypeNames } from '@internals/shared'
|
|
2
|
+
import { getOperationParameters, operationFileEntry, resolveOperationTypeNames } from '@internals/shared'
|
|
3
3
|
import { resolveZodSchemaNames } from '@internals/tanstack-query'
|
|
4
|
-
import { defineGenerator } from '@kubb/core'
|
|
4
|
+
import { ast, defineGenerator } from '@kubb/core'
|
|
5
5
|
import { Client, pluginClientName } from '@kubb/plugin-client'
|
|
6
6
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
7
|
import { pluginZodName } from '@kubb/plugin-zod'
|
|
@@ -20,6 +20,7 @@ export const infiniteQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
20
20
|
name: 'react-infinite-query',
|
|
21
21
|
renderer: jsxRendererSync,
|
|
22
22
|
operation(node, ctx) {
|
|
23
|
+
if (!ast.isHttpOperationNode(node)) return null
|
|
23
24
|
const { config, driver, resolver, root } = ctx
|
|
24
25
|
const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options
|
|
25
26
|
|
|
@@ -54,14 +55,12 @@ export const infiniteQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
54
55
|
const clientBaseName = resolver.resolveInfiniteClientName(node)
|
|
55
56
|
|
|
56
57
|
const meta = {
|
|
57
|
-
file: resolver.resolveFile(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{ root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },
|
|
64
|
-
),
|
|
58
|
+
file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),
|
|
59
|
+
fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
60
|
+
root,
|
|
61
|
+
output: pluginTs.options?.output ?? output,
|
|
62
|
+
group: pluginTs.options?.group ?? undefined,
|
|
63
|
+
}),
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -73,10 +72,11 @@ export const infiniteQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
73
72
|
const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null
|
|
74
73
|
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null
|
|
75
74
|
const fileZod = zodResolver
|
|
76
|
-
? zodResolver.resolveFile(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
76
|
+
root,
|
|
77
|
+
output: pluginZod?.options?.output ?? output,
|
|
78
|
+
group: pluginZod?.options?.group ?? undefined,
|
|
79
|
+
})
|
|
80
80
|
: null
|
|
81
81
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)
|
|
82
82
|
|
|
@@ -86,14 +86,11 @@ export const infiniteQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
86
86
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null
|
|
87
87
|
|
|
88
88
|
const clientFile = shouldUseClientPlugin
|
|
89
|
-
? clientResolver?.resolveFile(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
group: clientPlugin?.options?.group ?? undefined,
|
|
95
|
-
},
|
|
96
|
-
)
|
|
89
|
+
? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {
|
|
90
|
+
root,
|
|
91
|
+
output: clientPlugin?.options?.output ?? output,
|
|
92
|
+
group: clientPlugin?.options?.group ?? undefined,
|
|
93
|
+
})
|
|
97
94
|
: null
|
|
98
95
|
|
|
99
96
|
const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
|
-
import { resolveOperationTypeNames } from '@internals/shared'
|
|
2
|
+
import { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'
|
|
3
3
|
import { resolveZodSchemaNames } from '@internals/tanstack-query'
|
|
4
|
-
import { defineGenerator } from '@kubb/core'
|
|
4
|
+
import { ast, defineGenerator } from '@kubb/core'
|
|
5
5
|
import { Client, pluginClientName } from '@kubb/plugin-client'
|
|
6
6
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
7
|
import { pluginZodName } from '@kubb/plugin-zod'
|
|
@@ -19,6 +19,7 @@ export const mutationGenerator = defineGenerator<PluginReactQuery>({
|
|
|
19
19
|
name: 'react-query-mutation',
|
|
20
20
|
renderer: jsxRendererSync,
|
|
21
21
|
operation(node, ctx) {
|
|
22
|
+
if (!ast.isHttpOperationNode(node)) return null
|
|
22
23
|
const { config, driver, resolver, root } = ctx
|
|
23
24
|
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options
|
|
24
25
|
|
|
@@ -43,14 +44,12 @@ export const mutationGenerator = defineGenerator<PluginReactQuery>({
|
|
|
43
44
|
const clientName = resolver.resolveClientName(node)
|
|
44
45
|
|
|
45
46
|
const meta = {
|
|
46
|
-
file: resolver.resolveFile(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
{ root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },
|
|
53
|
-
),
|
|
47
|
+
file: resolver.resolveFile(operationFileEntry(node, mutationHookName), { root, output, group: group ?? undefined }),
|
|
48
|
+
fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
49
|
+
root,
|
|
50
|
+
output: pluginTs.options?.output ?? output,
|
|
51
|
+
group: pluginTs.options?.group ?? undefined,
|
|
52
|
+
}),
|
|
54
53
|
}
|
|
55
54
|
|
|
56
55
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })
|
|
@@ -58,10 +57,11 @@ export const mutationGenerator = defineGenerator<PluginReactQuery>({
|
|
|
58
57
|
const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null
|
|
59
58
|
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null
|
|
60
59
|
const fileZod = zodResolver
|
|
61
|
-
? zodResolver.resolveFile(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
61
|
+
root,
|
|
62
|
+
output: pluginZod?.options?.output ?? output,
|
|
63
|
+
group: pluginZod?.options?.group ?? undefined,
|
|
64
|
+
})
|
|
65
65
|
: null
|
|
66
66
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)
|
|
67
67
|
|
|
@@ -71,14 +71,11 @@ export const mutationGenerator = defineGenerator<PluginReactQuery>({
|
|
|
71
71
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null
|
|
72
72
|
|
|
73
73
|
const clientFile = shouldUseClientPlugin
|
|
74
|
-
? clientResolver?.resolveFile(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
group: clientPlugin?.options?.group ?? undefined,
|
|
80
|
-
},
|
|
81
|
-
)
|
|
74
|
+
? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {
|
|
75
|
+
root,
|
|
76
|
+
output: clientPlugin?.options?.output ?? output,
|
|
77
|
+
group: clientPlugin?.options?.group ?? undefined,
|
|
78
|
+
})
|
|
82
79
|
: null
|
|
83
80
|
|
|
84
81
|
const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
|
-
import { resolveOperationTypeNames } from '@internals/shared'
|
|
2
|
+
import { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'
|
|
3
3
|
import { resolveZodSchemaNames } from '@internals/tanstack-query'
|
|
4
|
-
import { defineGenerator } from '@kubb/core'
|
|
4
|
+
import { ast, defineGenerator } from '@kubb/core'
|
|
5
5
|
import { Client, pluginClientName } from '@kubb/plugin-client'
|
|
6
6
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
7
|
import { pluginZodName } from '@kubb/plugin-zod'
|
|
@@ -19,6 +19,7 @@ export const queryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
19
19
|
name: 'react-query',
|
|
20
20
|
renderer: jsxRendererSync,
|
|
21
21
|
operation(node, ctx) {
|
|
22
|
+
if (!ast.isHttpOperationNode(node)) return null
|
|
22
23
|
const { config, driver, resolver, root } = ctx
|
|
23
24
|
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options
|
|
24
25
|
|
|
@@ -44,14 +45,12 @@ export const queryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
44
45
|
const clientName = resolver.resolveClientName(node)
|
|
45
46
|
|
|
46
47
|
const meta = {
|
|
47
|
-
file: resolver.resolveFile(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
{ root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },
|
|
54
|
-
),
|
|
48
|
+
file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),
|
|
49
|
+
fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
50
|
+
root,
|
|
51
|
+
output: pluginTs.options?.output ?? output,
|
|
52
|
+
group: pluginTs.options?.group ?? undefined,
|
|
53
|
+
}),
|
|
55
54
|
}
|
|
56
55
|
|
|
57
56
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -63,10 +62,11 @@ export const queryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
63
62
|
const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null
|
|
64
63
|
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null
|
|
65
64
|
const fileZod = zodResolver
|
|
66
|
-
? zodResolver.resolveFile(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
66
|
+
root,
|
|
67
|
+
output: pluginZod?.options?.output ?? output,
|
|
68
|
+
group: pluginZod?.options?.group ?? undefined,
|
|
69
|
+
})
|
|
70
70
|
: null
|
|
71
71
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)
|
|
72
72
|
|
|
@@ -76,14 +76,11 @@ export const queryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
76
76
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null
|
|
77
77
|
|
|
78
78
|
const clientFile = shouldUseClientPlugin
|
|
79
|
-
? clientResolver?.resolveFile(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
group: clientPlugin?.options?.group ?? undefined,
|
|
85
|
-
},
|
|
86
|
-
)
|
|
79
|
+
? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {
|
|
80
|
+
root,
|
|
81
|
+
output: clientPlugin?.options?.output ?? output,
|
|
82
|
+
group: clientPlugin?.options?.group ?? undefined,
|
|
83
|
+
})
|
|
87
84
|
: null
|
|
88
85
|
|
|
89
86
|
const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
|
-
import { getOperationParameters, resolveOperationTypeNames } from '@internals/shared'
|
|
2
|
+
import { getOperationParameters, operationFileEntry, resolveOperationTypeNames } from '@internals/shared'
|
|
3
3
|
import { resolveZodSchemaNames } from '@internals/tanstack-query'
|
|
4
|
-
import { defineGenerator } from '@kubb/core'
|
|
4
|
+
import { ast, defineGenerator } from '@kubb/core'
|
|
5
5
|
import { Client, pluginClientName } from '@kubb/plugin-client'
|
|
6
6
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
7
|
import { pluginZodName } from '@kubb/plugin-zod'
|
|
@@ -20,6 +20,7 @@ export const suspenseInfiniteQueryGenerator = defineGenerator<PluginReactQuery>(
|
|
|
20
20
|
name: 'react-suspense-infinite-query',
|
|
21
21
|
renderer: jsxRendererSync,
|
|
22
22
|
operation(node, ctx) {
|
|
23
|
+
if (!ast.isHttpOperationNode(node)) return null
|
|
23
24
|
const { config, driver, resolver, root } = ctx
|
|
24
25
|
const {
|
|
25
26
|
output,
|
|
@@ -67,14 +68,12 @@ export const suspenseInfiniteQueryGenerator = defineGenerator<PluginReactQuery>(
|
|
|
67
68
|
const clientBaseName = resolver.resolveSuspenseInfiniteClientName(node)
|
|
68
69
|
|
|
69
70
|
const meta = {
|
|
70
|
-
file: resolver.resolveFile(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
{ root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },
|
|
77
|
-
),
|
|
71
|
+
file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),
|
|
72
|
+
fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
73
|
+
root,
|
|
74
|
+
output: pluginTs.options?.output ?? output,
|
|
75
|
+
group: pluginTs.options?.group ?? undefined,
|
|
76
|
+
}),
|
|
78
77
|
}
|
|
79
78
|
|
|
80
79
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })
|
|
@@ -82,10 +81,11 @@ export const suspenseInfiniteQueryGenerator = defineGenerator<PluginReactQuery>(
|
|
|
82
81
|
const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null
|
|
83
82
|
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null
|
|
84
83
|
const fileZod = zodResolver
|
|
85
|
-
? zodResolver.resolveFile(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
85
|
+
root,
|
|
86
|
+
output: pluginZod?.options?.output ?? output,
|
|
87
|
+
group: pluginZod?.options?.group ?? undefined,
|
|
88
|
+
})
|
|
89
89
|
: null
|
|
90
90
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)
|
|
91
91
|
|
|
@@ -95,14 +95,11 @@ export const suspenseInfiniteQueryGenerator = defineGenerator<PluginReactQuery>(
|
|
|
95
95
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null
|
|
96
96
|
|
|
97
97
|
const clientFile = shouldUseClientPlugin
|
|
98
|
-
? clientResolver?.resolveFile(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
group: clientPlugin?.options?.group ?? undefined,
|
|
104
|
-
},
|
|
105
|
-
)
|
|
98
|
+
? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {
|
|
99
|
+
root,
|
|
100
|
+
output: clientPlugin?.options?.output ?? output,
|
|
101
|
+
group: clientPlugin?.options?.group ?? undefined,
|
|
102
|
+
})
|
|
106
103
|
: null
|
|
107
104
|
|
|
108
105
|
const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
|
-
import { resolveOperationTypeNames } from '@internals/shared'
|
|
2
|
+
import { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'
|
|
3
3
|
import { resolveZodSchemaNames } from '@internals/tanstack-query'
|
|
4
|
-
import { defineGenerator } from '@kubb/core'
|
|
4
|
+
import { ast, defineGenerator } from '@kubb/core'
|
|
5
5
|
import { Client, pluginClientName } from '@kubb/plugin-client'
|
|
6
6
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
7
7
|
import { pluginZodName } from '@kubb/plugin-zod'
|
|
@@ -20,6 +20,7 @@ export const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
20
20
|
name: 'react-suspense-query',
|
|
21
21
|
renderer: jsxRendererSync,
|
|
22
22
|
operation(node, ctx) {
|
|
23
|
+
if (!ast.isHttpOperationNode(node)) return null
|
|
23
24
|
const { config, driver, resolver, root } = ctx
|
|
24
25
|
const { output, query, mutation, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options
|
|
25
26
|
|
|
@@ -46,14 +47,12 @@ export const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
46
47
|
const clientName = resolver.resolveSuspenseClientName(node)
|
|
47
48
|
|
|
48
49
|
const meta = {
|
|
49
|
-
file: resolver.resolveFile(
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
{ root, output: pluginTs.options?.output ?? output, group: pluginTs.options?.group ?? undefined },
|
|
56
|
-
),
|
|
50
|
+
file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),
|
|
51
|
+
fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
52
|
+
root,
|
|
53
|
+
output: pluginTs.options?.output ?? output,
|
|
54
|
+
group: pluginTs.options?.group ?? undefined,
|
|
55
|
+
}),
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {
|
|
@@ -65,10 +64,11 @@ export const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
65
64
|
const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null
|
|
66
65
|
const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null
|
|
67
66
|
const fileZod = zodResolver
|
|
68
|
-
? zodResolver.resolveFile(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {
|
|
68
|
+
root,
|
|
69
|
+
output: pluginZod?.options?.output ?? output,
|
|
70
|
+
group: pluginZod?.options?.group ?? undefined,
|
|
71
|
+
})
|
|
72
72
|
: null
|
|
73
73
|
const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)
|
|
74
74
|
|
|
@@ -78,14 +78,11 @@ export const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
78
78
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null
|
|
79
79
|
|
|
80
80
|
const clientFile = shouldUseClientPlugin
|
|
81
|
-
? clientResolver?.resolveFile(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
group: clientPlugin?.options?.group ?? undefined,
|
|
87
|
-
},
|
|
88
|
-
)
|
|
81
|
+
? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {
|
|
82
|
+
root,
|
|
83
|
+
output: clientPlugin?.options?.output ?? output,
|
|
84
|
+
group: clientPlugin?.options?.group ?? undefined,
|
|
85
|
+
})
|
|
89
86
|
: null
|
|
90
87
|
|
|
91
88
|
const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName
|
|
@@ -163,6 +160,7 @@ export const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({
|
|
|
163
160
|
paramsType={paramsType}
|
|
164
161
|
pathParamsType={pathParamsType}
|
|
165
162
|
dataReturnType={clientOptions.dataReturnType || 'data'}
|
|
163
|
+
suspense
|
|
166
164
|
/>
|
|
167
165
|
|
|
168
166
|
{suspense && (
|
package/src/plugin.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'node:path'
|
|
2
|
-
import {
|
|
3
|
-
import { ast, definePlugin
|
|
2
|
+
import { createGroupConfig } from '@internals/shared'
|
|
3
|
+
import { ast, definePlugin } from '@kubb/core'
|
|
4
4
|
import { pluginClientName } from '@kubb/plugin-client'
|
|
5
5
|
import { source as axiosClientSource } from '@kubb/plugin-client/templates/clients/axios.source'
|
|
6
6
|
import { source as fetchClientSource } from '@kubb/plugin-client/templates/clients/fetch.source'
|
|
@@ -58,7 +58,7 @@ export const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {
|
|
|
58
58
|
exclude = [],
|
|
59
59
|
include,
|
|
60
60
|
override = [],
|
|
61
|
-
parser =
|
|
61
|
+
parser = false,
|
|
62
62
|
suspense = {},
|
|
63
63
|
infinite = false,
|
|
64
64
|
paramsType = 'inline',
|
|
@@ -90,19 +90,7 @@ export const pluginReactQuery = definePlugin<PluginReactQuery>((options) => {
|
|
|
90
90
|
customHookOptionsFileGenerator,
|
|
91
91
|
].filter((generator): generator is NonNullable<typeof generator> => Boolean(generator))
|
|
92
92
|
|
|
93
|
-
const groupConfig = group
|
|
94
|
-
? ({
|
|
95
|
-
...group,
|
|
96
|
-
name: group.name
|
|
97
|
-
? group.name
|
|
98
|
-
: (ctx: { group: string }) => {
|
|
99
|
-
if (group.type === 'path') {
|
|
100
|
-
return `${ctx.group.split('/')[1]}`
|
|
101
|
-
}
|
|
102
|
-
return `${camelCase(ctx.group)}Controller`
|
|
103
|
-
},
|
|
104
|
-
} satisfies Group)
|
|
105
|
-
: null
|
|
93
|
+
const groupConfig = createGroupConfig(group, { suffix: 'Controller', honorName: true })
|
|
106
94
|
|
|
107
95
|
return {
|
|
108
96
|
name: pluginReactQueryName,
|