@kubb/plugin-client 4.5.7 → 4.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{Operations-CTvMCPaa.cjs → Operations-6d1309lt.cjs} +2 -2
  2. package/dist/{Operations-CTvMCPaa.cjs.map → Operations-6d1309lt.cjs.map} +1 -1
  3. package/dist/{Operations-HWuo-D3O.js → Operations-B7ICm4Kn.js} +1 -1
  4. package/dist/{Operations-HWuo-D3O.js.map → Operations-B7ICm4Kn.js.map} +1 -1
  5. package/dist/chunk-CUT6urMc.cjs +30 -0
  6. package/dist/clients/axios.cjs +40 -0
  7. package/dist/clients/axios.cjs.map +1 -0
  8. package/dist/clients/axios.d.cts +39 -0
  9. package/dist/clients/axios.d.ts +39 -0
  10. package/dist/clients/axios.js +33 -0
  11. package/dist/clients/axios.js.map +1 -0
  12. package/dist/clients/fetch.cjs +48 -0
  13. package/dist/clients/fetch.cjs.map +1 -0
  14. package/dist/clients/fetch.d.cts +39 -0
  15. package/dist/clients/fetch.d.ts +39 -0
  16. package/dist/clients/fetch.js +43 -0
  17. package/dist/clients/fetch.js.map +1 -0
  18. package/dist/components.cjs +1 -1
  19. package/dist/components.d.cts +1 -1
  20. package/dist/components.d.ts +1 -1
  21. package/dist/components.js +1 -1
  22. package/dist/{generators-CQvDx6Mq.js → generators-BoB4gEqA.js} +5 -5
  23. package/dist/generators-BoB4gEqA.js.map +1 -0
  24. package/dist/{generators-f5-oi9Hx.cjs → generators-NmR9v8nl.cjs} +7 -35
  25. package/dist/generators-NmR9v8nl.cjs.map +1 -0
  26. package/dist/generators.cjs +2 -2
  27. package/dist/generators.d.cts +1 -1
  28. package/dist/generators.d.ts +1 -1
  29. package/dist/generators.js +2 -2
  30. package/dist/index.cjs +15 -11
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.cts +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js +13 -10
  35. package/dist/index.js.map +1 -1
  36. package/dist/{types-CDBKpdup.d.ts → types-CgY5O5ai.d.cts} +9 -2
  37. package/dist/{types-C8tGU2Ir.d.cts → types-DQZ242PD.d.ts} +9 -2
  38. package/package.json +22 -8
  39. package/src/clients/axios.ts +68 -0
  40. package/src/clients/fetch.ts +81 -0
  41. package/src/generators/__snapshots__/deletePet.ts +2 -2
  42. package/src/generators/__snapshots__/deletePetObject.ts +2 -2
  43. package/src/generators/__snapshots__/findByTags.ts +2 -2
  44. package/src/generators/__snapshots__/findByTagsFull.ts +2 -2
  45. package/src/generators/__snapshots__/findByTagsObject.ts +2 -2
  46. package/src/generators/__snapshots__/findByTagsWithZod.ts +2 -2
  47. package/src/generators/__snapshots__/findByTagsWithZodFull.ts +2 -2
  48. package/src/generators/__snapshots__/updatePetById.ts +2 -2
  49. package/src/generators/__snapshots__/updatePetByIdClean.ts +2 -2
  50. package/src/generators/clientGenerator.tsx +2 -2
  51. package/src/plugin.ts +13 -7
  52. package/src/types.ts +7 -0
  53. package/templates/clients/axios.ts +3 -5
  54. package/templates/clients/fetch.ts +4 -6
  55. package/dist/generators-CQvDx6Mq.js.map +0 -1
  56. package/dist/generators-f5-oi9Hx.cjs.map +0 -1
  57. /package/dist/{chunk-DMmIE7y6.js → chunk-BEWQA2LH.js} +0 -0
@@ -0,0 +1,81 @@
1
+ /**
2
+ * RequestCredentials
3
+ */
4
+ export type RequestCredentials = 'omit' | 'same-origin' | 'include'
5
+
6
+ /**
7
+ * Subset of FetchRequestConfig
8
+ */
9
+ export type RequestConfig<TData = unknown> = {
10
+ baseURL?: string
11
+ url?: string
12
+ method?: 'GET' | 'PUT' | 'PATCH' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD'
13
+ params?: unknown
14
+ data?: TData | FormData
15
+ responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream'
16
+ signal?: AbortSignal
17
+ headers?: [string, string][] | Record<string, string>
18
+ credentials?: RequestCredentials
19
+ }
20
+
21
+ /**
22
+ * Subset of FetchResponse
23
+ */
24
+ export type ResponseConfig<TData = unknown> = {
25
+ data: TData
26
+ status: number
27
+ statusText: string
28
+ headers: Headers
29
+ }
30
+
31
+ let _config: Partial<RequestConfig> = {}
32
+
33
+ export const getConfig = () => _config
34
+
35
+ export const setConfig = (config: Partial<RequestConfig>) => {
36
+ _config = config
37
+ return getConfig()
38
+ }
39
+
40
+ export type ResponseErrorConfig<TError = unknown> = TError
41
+
42
+ export const client = async <TData, _TError = unknown, TVariables = unknown>(paramsConfig: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {
43
+ const normalizedParams = new URLSearchParams()
44
+
45
+ const globalConfig = getConfig()
46
+ const config = { ...globalConfig, ...paramsConfig }
47
+
48
+ Object.entries(config.params || {}).forEach(([key, value]) => {
49
+ if (value !== undefined) {
50
+ normalizedParams.append(key, value === null ? 'null' : value.toString())
51
+ }
52
+ })
53
+
54
+ let targetUrl = [config.baseURL, config.url].filter(Boolean).join('')
55
+
56
+ if (config.params) {
57
+ targetUrl += `?${normalizedParams}`
58
+ }
59
+
60
+ const response = await fetch(targetUrl, {
61
+ credentials: config.credentials || 'same-origin',
62
+ method: config.method?.toUpperCase(),
63
+ body: JSON.stringify(config.data),
64
+ signal: config.signal,
65
+ headers: config.headers,
66
+ })
67
+
68
+ const data = [204, 205, 304].includes(response.status) || !response.body ? {} : await response.json()
69
+
70
+ return {
71
+ data: data as TData,
72
+ status: response.status,
73
+ statusText: response.statusText,
74
+ headers: response.headers as Headers,
75
+ }
76
+ }
77
+
78
+ client.getConfig = getConfig
79
+ client.setConfig = setConfig
80
+
81
+ export default client
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getDeletePetUrl(petId: DeletePetPathParams['petId']) {
10
10
  const res = { method: 'DELETE', url: `/pet/${petId}` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getDeletePetUrl({ petId }: { petId: DeletePetPathParams['petId'] }) {
10
10
  const res = { method: 'DELETE', url: `/pet/${petId}` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getFindPetsByTagsUrl() {
10
10
  const res = { method: 'GET', url: `/pet/findByTags` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getFindPetsByTagsUrl() {
10
10
  const res = { method: 'GET', url: `/pet/findByTags` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getFindPetsByTagsUrl() {
10
10
  const res = { method: 'GET', url: `/pet/findByTags` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getFindPetsByTagsUrl() {
10
10
  const res = { method: 'GET', url: `/pet/findByTags` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getFindPetsByTagsUrl() {
10
10
  const res = { method: 'GET', url: `/pet/findByTags` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  export function getUpdatePetWithFormUrl(petId: UpdatePetWithFormPathParams['petId']) {
10
10
  const res = { method: 'POST', url: `/pet/${petId}` as const }
@@ -3,8 +3,8 @@
3
3
  * Generated by Kubb (https://kubb.dev/).
4
4
  * Do not edit manually.
5
5
  */
6
- import fetch from '@kubb/plugin-client/clients/axios'
7
- import type { RequestConfig, ResponseErrorConfig } from '@kubb/plugin-client/clients/axios'
6
+ import type { RequestConfig, ResponseErrorConfig } from './test/.kubb/fetch'
7
+ import { fetch } from './test/.kubb/fetch'
8
8
 
9
9
  function getUpdatePetWithFormUrl(petId: UpdatePetWithFormPathParams['petId']) {
10
10
  const res = { method: 'POST', url: `/pet/${petId}` as const }
@@ -57,11 +57,11 @@ export const clientGenerator = createReactGenerator<PluginClient>({
57
57
  </>
58
58
  ) : (
59
59
  <>
60
- <File.Import name={'fetch'} root={client.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetcher.ts')} />
60
+ <File.Import name={['fetch']} root={client.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />
61
61
  <File.Import
62
62
  name={['RequestConfig', 'ResponseErrorConfig']}
63
63
  root={client.file.path}
64
- path={path.resolve(config.root, config.output.path, '.kubb/fetcher.ts')}
64
+ path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}
65
65
  isTypeOnly
66
66
  />
67
67
  </>
package/src/plugin.ts CHANGED
@@ -31,17 +31,21 @@ export const pluginClient = definePlugin<PluginClient>((options) => {
31
31
  client = 'axios',
32
32
  importPath,
33
33
  contentType,
34
+ bundle = false,
34
35
  } = options
35
36
 
37
+ const resolvedImportPath = importPath ?? (!bundle ? `@kubb/plugin-client/clients/${client}` : undefined)
38
+
36
39
  return {
37
40
  name: pluginClientName,
38
41
  options: {
39
42
  client,
43
+ bundle,
40
44
  output,
41
45
  group,
42
46
  parser,
43
47
  dataReturnType,
44
- importPath,
48
+ importPath: resolvedImportPath,
45
49
  paramsType,
46
50
  paramsCasing,
47
51
  pathParamsType,
@@ -98,19 +102,21 @@ export const pluginClient = definePlugin<PluginClient>((options) => {
98
102
  const oas = await this.getOas()
99
103
  const baseURL = await this.getBaseURL()
100
104
 
101
- // pre add bundled fetcher
102
- const containsFetcher = this.fabric.files.some((file) => file.baseName === 'fetcher.ts')
105
+ // pre add bundled fetch
106
+ const containsFetch = this.fabric.files.some((file) => file.baseName === 'fetch.ts')
103
107
 
104
- if (!this.plugin.options.importPath && !containsFetcher) {
108
+ if (bundle && !this.plugin.options.importPath && !containsFetch) {
105
109
  await this.addFile({
106
- baseName: 'fetcher.ts',
107
- path: path.resolve(root, '.kubb/fetcher.ts'),
110
+ baseName: 'fetch.ts',
111
+ path: path.resolve(root, '.kubb/fetch.ts'),
108
112
  sources: [
109
113
  {
110
- name: 'fetcher',
114
+ name: 'fetch',
111
115
  value: resolveModuleSource(
112
116
  this.plugin.options.client === 'fetch' ? '@kubb/plugin-client/templates/clients/fetch' : '@kubb/plugin-client/templates/clients/axios',
113
117
  ).source,
118
+ isExportable: true,
119
+ isIndexable: true,
114
120
  },
115
121
  ],
116
122
  })
package/src/types.ts CHANGED
@@ -92,6 +92,12 @@ export type Options = {
92
92
  * @default 'axios'
93
93
  */
94
94
  client?: 'axios' | 'fetch'
95
+ /**
96
+ * Bundle the selected client into the generated `.kubb` directory.
97
+ * When disabled the generated clients will import the shared runtime from `@kubb/plugin-client/clients/*`.
98
+ * @default false
99
+ */
100
+ bundle?: boolean
95
101
  transformers?: {
96
102
  /**
97
103
  * Customize the names based on the type that is provided by the plugin.
@@ -109,6 +115,7 @@ type ResolvedOptions = {
109
115
  group?: Options['group']
110
116
  baseURL: string | undefined
111
117
  client: Options['client']
118
+ bundle: NonNullable<Options['bundle']>
112
119
  parser: NonNullable<Options['parser']>
113
120
  urlType: NonNullable<Options['urlType']>
114
121
  importPath: Options['importPath']
@@ -45,7 +45,7 @@ export const setConfig = (config: RequestConfig) => {
45
45
 
46
46
  export const axiosInstance = axios.create(getConfig())
47
47
 
48
- export const client = async <TData, TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {
48
+ export const fetch = async <TData, TError = unknown, TVariables = unknown>(config: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {
49
49
  const globalConfig = getConfig()
50
50
 
51
51
  return axiosInstance
@@ -62,7 +62,5 @@ export const client = async <TData, TError = unknown, TVariables = unknown>(conf
62
62
  })
63
63
  }
64
64
 
65
- client.getConfig = getConfig
66
- client.setConfig = setConfig
67
-
68
- export default client
65
+ fetch.getConfig = getConfig
66
+ fetch.setConfig = setConfig
@@ -39,7 +39,7 @@ export const setConfig = (config: Partial<RequestConfig>) => {
39
39
 
40
40
  export type ResponseErrorConfig<TError = unknown> = TError
41
41
 
42
- export const client = async <TData, _TError = unknown, TVariables = unknown>(paramsConfig: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {
42
+ export const fetch = async <TData, _TError = unknown, TVariables = unknown>(paramsConfig: RequestConfig<TVariables>): Promise<ResponseConfig<TData>> => {
43
43
  const normalizedParams = new URLSearchParams()
44
44
 
45
45
  const globalConfig = getConfig()
@@ -57,7 +57,7 @@ export const client = async <TData, _TError = unknown, TVariables = unknown>(par
57
57
  targetUrl += `?${normalizedParams}`
58
58
  }
59
59
 
60
- const response = await fetch(targetUrl, {
60
+ const response = await globalThis.fetch(targetUrl, {
61
61
  credentials: config.credentials || 'same-origin',
62
62
  method: config.method?.toUpperCase(),
63
63
  body: JSON.stringify(config.data),
@@ -75,7 +75,5 @@ export const client = async <TData, _TError = unknown, TVariables = unknown>(par
75
75
  }
76
76
  }
77
77
 
78
- client.getConfig = getConfig
79
- client.setConfig = setConfig
80
-
81
- export default client
78
+ fetch.getConfig = getConfig
79
+ fetch.setConfig = setConfig
@@ -1 +0,0 @@
1
- {"version":3,"file":"generators-CQvDx6Mq.js","names":[],"sources":["../src/generators/clientGenerator.tsx","../src/generators/groupedClientGenerator.tsx","../src/generators/operationsGenerator.tsx"],"sourcesContent":["import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\nimport { Client } from '../components/Client'\nimport { Url } from '../components/Url.tsx'\nimport type { PluginClient } from '../types'\n\nexport const clientGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operation({ config, plugin, operation, generator }) {\n const pluginManager = usePluginManager()\n const {\n options,\n options: { output, urlType },\n } = plugin\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const client = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const url = {\n name: getName(operation, { type: 'function', suffix: 'url', prefix: 'get' }),\n file: getFile(operation),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\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 return (\n <File\n baseName={client.file.baseName}\n path={client.file.path}\n meta={client.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.importPath} />\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.importPath} isTypeOnly />\n </>\n ) : (\n <>\n <File.Import name={'fetch'} root={client.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetcher.ts')} />\n <File.Import\n name={['RequestConfig', 'ResponseErrorConfig']}\n root={client.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetcher.ts')}\n isTypeOnly\n />\n </>\n )}\n\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={client.file.path} path={zod.file.path} />\n )}\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={client.file.path}\n path={type.file.path}\n isTypeOnly\n />\n\n <Url\n name={url.name}\n baseURL={options.baseURL}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n typeSchemas={type.schemas}\n operation={operation}\n isIndexable={urlType === 'export'}\n isExportable={urlType === 'export'}\n />\n\n <Client\n name={client.name}\n urlName={url.name}\n baseURL={options.baseURL}\n dataReturnType={options.dataReturnType}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n typeSchemas={type.schemas}\n operation={operation}\n parser={options.parser}\n zodSchemas={zod.schemas}\n />\n </File>\n )\n },\n})\n","import { usePluginManager } from '@kubb/core/hooks'\nimport { camelCase } from '@kubb/core/transformers'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, Function } from '@kubb/react-fabric'\nimport type { PluginClient } from '../types'\n\nexport const groupedClientGenerator = createReactGenerator<PluginClient>({\n name: 'groupedClient',\n Operations({ operations, generator, plugin }) {\n const { options, key: pluginKey } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getName, getFile, getGroup } = useOperationManager(generator)\n\n const controllers = operations.reduce(\n (acc, operation) => {\n if (options.group?.type === 'tag') {\n const group = getGroup(operation)\n const name = group?.tag ? options.group?.name?.({ group: camelCase(group.tag) }) : undefined\n\n if (!group?.tag || !name) {\n return acc\n }\n\n const file = pluginManager.getFile({\n name,\n extname: '.ts',\n pluginKey,\n options: { group },\n })\n\n const client = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const previousFile = acc.find((item) => item.file.path === file.path)\n\n if (previousFile) {\n previousFile.clients.push(client)\n } else {\n acc.push({ name, file, clients: [client] })\n }\n }\n\n return acc\n },\n [] as Array<{ name: string; file: KubbFile.File; clients: Array<{ name: string; file: KubbFile.File }> }>,\n )\n\n return controllers.map(({ name, file, clients }) => {\n return (\n <File\n key={file.path}\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: options.output })}\n >\n {clients.map((client) => (\n <File.Import key={client.name} name={[client.name]} root={file.path} path={client.file.path} />\n ))}\n\n <File.Source name={name} isExportable isIndexable>\n <Function export name={name}>\n {`return { ${clients.map((client) => client.name).join(', ')} }`}\n </Function>\n </File.Source>\n </File>\n )\n })\n },\n})\n","import { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File } from '@kubb/react-fabric'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operations({ operations, plugin }) {\n const {\n key: pluginKey,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <Operations name={name} operations={operations} />\n </File>\n )\n },\n})\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generators-f5-oi9Hx.cjs","names":["pluginTsName","pluginZodName","File","path","Url","Client","File","Function","File","Operations"],"sources":["../src/generators/clientGenerator.tsx","../src/generators/groupedClientGenerator.tsx","../src/generators/operationsGenerator.tsx"],"sourcesContent":["import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\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 } from '@kubb/react-fabric'\nimport { Client } from '../components/Client'\nimport { Url } from '../components/Url.tsx'\nimport type { PluginClient } from '../types'\n\nexport const clientGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operation({ config, plugin, operation, generator }) {\n const pluginManager = usePluginManager()\n const {\n options,\n options: { output, urlType },\n } = plugin\n\n const oas = useOas()\n const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n const client = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const url = {\n name: getName(operation, { type: 'function', suffix: 'url', prefix: 'get' }),\n file: getFile(operation),\n }\n\n const type = {\n file: getFile(operation, { pluginKey: [pluginTsName] }),\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 return (\n <File\n baseName={client.file.baseName}\n path={client.file.path}\n meta={client.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n {options.importPath ? (\n <>\n <File.Import name={'fetch'} path={options.importPath} />\n <File.Import name={['RequestConfig', 'ResponseErrorConfig']} path={options.importPath} isTypeOnly />\n </>\n ) : (\n <>\n <File.Import name={'fetch'} root={client.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetcher.ts')} />\n <File.Import\n name={['RequestConfig', 'ResponseErrorConfig']}\n root={client.file.path}\n path={path.resolve(config.root, config.output.path, '.kubb/fetcher.ts')}\n isTypeOnly\n />\n </>\n )}\n\n {options.parser === 'zod' && (\n <File.Import name={[zod.schemas.response.name, zod.schemas.request?.name].filter(Boolean)} root={client.file.path} path={zod.file.path} />\n )}\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={client.file.path}\n path={type.file.path}\n isTypeOnly\n />\n\n <Url\n name={url.name}\n baseURL={options.baseURL}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n typeSchemas={type.schemas}\n operation={operation}\n isIndexable={urlType === 'export'}\n isExportable={urlType === 'export'}\n />\n\n <Client\n name={client.name}\n urlName={url.name}\n baseURL={options.baseURL}\n dataReturnType={options.dataReturnType}\n pathParamsType={options.pathParamsType}\n paramsCasing={options.paramsCasing}\n paramsType={options.paramsType}\n typeSchemas={type.schemas}\n operation={operation}\n parser={options.parser}\n zodSchemas={zod.schemas}\n />\n </File>\n )\n },\n})\n","import { usePluginManager } from '@kubb/core/hooks'\nimport { camelCase } from '@kubb/core/transformers'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, Function } from '@kubb/react-fabric'\nimport type { PluginClient } from '../types'\n\nexport const groupedClientGenerator = createReactGenerator<PluginClient>({\n name: 'groupedClient',\n Operations({ operations, generator, plugin }) {\n const { options, key: pluginKey } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getName, getFile, getGroup } = useOperationManager(generator)\n\n const controllers = operations.reduce(\n (acc, operation) => {\n if (options.group?.type === 'tag') {\n const group = getGroup(operation)\n const name = group?.tag ? options.group?.name?.({ group: camelCase(group.tag) }) : undefined\n\n if (!group?.tag || !name) {\n return acc\n }\n\n const file = pluginManager.getFile({\n name,\n extname: '.ts',\n pluginKey,\n options: { group },\n })\n\n const client = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const previousFile = acc.find((item) => item.file.path === file.path)\n\n if (previousFile) {\n previousFile.clients.push(client)\n } else {\n acc.push({ name, file, clients: [client] })\n }\n }\n\n return acc\n },\n [] as Array<{ name: string; file: KubbFile.File; clients: Array<{ name: string; file: KubbFile.File }> }>,\n )\n\n return controllers.map(({ name, file, clients }) => {\n return (\n <File\n key={file.path}\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: options.output })}\n >\n {clients.map((client) => (\n <File.Import key={client.name} name={[client.name]} root={file.path} path={client.file.path} />\n ))}\n\n <File.Source name={name} isExportable isIndexable>\n <Function export name={name}>\n {`return { ${clients.map((client) => client.name).join(', ')} }`}\n </Function>\n </File.Source>\n </File>\n )\n })\n },\n})\n","import { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File } from '@kubb/react-fabric'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n name: 'client',\n Operations({ operations, plugin }) {\n const {\n key: pluginKey,\n options: { output },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <Operations name={name} operations={operations} />\n </File>\n )\n },\n})\n"],"mappings":"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"}
File without changes