@kubb/plugin-client 3.0.0-alpha.14 → 3.0.0-alpha.16

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 (61) hide show
  1. package/client.ts +1 -1
  2. package/dist/chunk-44KNIIBT.cjs +178 -0
  3. package/dist/chunk-44KNIIBT.cjs.map +1 -0
  4. package/dist/chunk-HGQQGWKN.js +130 -0
  5. package/dist/chunk-HGQQGWKN.js.map +1 -0
  6. package/dist/chunk-NEK3OJBX.cjs +133 -0
  7. package/dist/chunk-NEK3OJBX.cjs.map +1 -0
  8. package/dist/chunk-XB4BUZDK.js +169 -0
  9. package/dist/chunk-XB4BUZDK.js.map +1 -0
  10. package/dist/client.cjs.map +1 -1
  11. package/dist/client.d.cts +1 -1
  12. package/dist/client.d.ts +1 -1
  13. package/dist/client.js.map +1 -1
  14. package/dist/components.cjs +3 -4
  15. package/dist/components.d.cts +37 -4
  16. package/dist/components.d.ts +37 -4
  17. package/dist/components.js +1 -2
  18. package/dist/generators.cjs +8 -4
  19. package/dist/generators.d.cts +5 -5
  20. package/dist/generators.d.ts +5 -5
  21. package/dist/generators.js +2 -2
  22. package/dist/index.cjs +9 -107
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.cts +1 -3
  25. package/dist/index.d.ts +1 -3
  26. package/dist/index.js +2 -106
  27. package/dist/index.js.map +1 -1
  28. package/dist/{types-DETYKDFZ.d.cts → types-j-ah_78Y.d.cts} +23 -47
  29. package/dist/{types-DETYKDFZ.d.ts → types-j-ah_78Y.d.ts} +23 -47
  30. package/package.json +14 -13
  31. package/src/components/Client.tsx +76 -56
  32. package/src/generators/__snapshots__/deletePet.ts +17 -0
  33. package/src/generators/__snapshots__/deletePetObject.ts +25 -0
  34. package/src/generators/__snapshots__/findByTags.ts +12 -0
  35. package/src/generators/__snapshots__/findByTagsFull.ts +12 -0
  36. package/src/generators/__snapshots__/findByTagsWithZod.ts +12 -0
  37. package/src/generators/__snapshots__/findByTagsWithZodFull.ts +12 -0
  38. package/src/generators/__snapshots__/importPath.ts +12 -0
  39. package/src/generators/__snapshots__/operations.ts +82 -0
  40. package/src/generators/__snapshots__/updatePetById.ts +15 -0
  41. package/src/generators/clientGenerator.tsx +65 -0
  42. package/src/generators/index.ts +2 -1
  43. package/src/generators/operationsGenerator.tsx +21 -0
  44. package/src/plugin.ts +10 -17
  45. package/src/types.ts +21 -29
  46. package/dist/chunk-AZDWYBLW.cjs +0 -4
  47. package/dist/chunk-AZDWYBLW.cjs.map +0 -1
  48. package/dist/chunk-IPKWNP7B.js +0 -56
  49. package/dist/chunk-IPKWNP7B.js.map +0 -1
  50. package/dist/chunk-JKG3C6DG.cjs +0 -58
  51. package/dist/chunk-JKG3C6DG.cjs.map +0 -1
  52. package/dist/chunk-KGGPZ6QL.cjs +0 -125
  53. package/dist/chunk-KGGPZ6QL.cjs.map +0 -1
  54. package/dist/chunk-YJOVLRSC.js +0 -3
  55. package/dist/chunk-YJOVLRSC.js.map +0 -1
  56. package/dist/chunk-YXOI7DUX.js +0 -122
  57. package/dist/chunk-YXOI7DUX.js.map +0 -1
  58. package/src/components/__snapshots__/Client/showPetById.ts +0 -8
  59. package/src/components/__snapshots__/Operations/showPetById.ts +0 -6
  60. package/src/components/__snapshots__/Query/showPetById.ts +0 -15
  61. package/src/generators/axiosGenerator.tsx +0 -63
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["URLPath","createFunctionParams","getPathParams","isOptional","jsx","File","jsxs","Function","getComments","Const"],"mappings":"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","file":"chunk-KGGPZ6QL.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, createFunctionParams } from '@kubb/react'\nimport type { KubbNode, Params } from '@kubb/react/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n options: PluginClient['resolvedOptions']\n typedSchemas: OperationSchemas\n operation: Operation\n}\n\nexport function Client({ name, options, typedSchemas, operation }: Props): KubbNode {\n const contentType = operation.getContentType()\n const baseURL = options.baseURL\n const path = new URLPath(operation.path)\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' ? `'Content-Type': '${contentType}'` : undefined,\n typedSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const params = createFunctionParams({\n pathParams: {\n mode: options.pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typedSchemas.pathParams, { typed: true }),\n },\n data: typedSchemas.request?.name\n ? {\n type: typedSchemas.request?.name,\n optional: isOptional(typedSchemas.request?.schema),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: typedSchemas.queryParams?.name,\n optional: isOptional(typedSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typedSchemas.headerParams?.name\n ? {\n type: typedSchemas.headerParams?.name,\n optional: isOptional(typedSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n })\n\n const clientParams = createFunctionParams({\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(operation.method),\n },\n url: {\n type: 'string',\n value: path.template,\n },\n baseURL: baseURL\n ? {\n type: 'string',\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: 'any',\n }\n : undefined,\n data: typedSchemas.request?.name\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers.join(', ')}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n })\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n async\n export\n returnType={\n options.dataReturnType === 'data' ? `ResponseConfig<${typedSchemas.response.name}>[\"data\"]` : `ResponseConfig<${typedSchemas.response.name}>`\n }\n params={params}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {formData || ''}\n <Function.Call\n name=\"res\"\n to={<Function name=\"client\" async generics={[typedSchemas.response.name, typedSchemas.request?.name].filter(Boolean)} params={clientParams} />}\n />\n <Function.Return>{options.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n","import { URLPath } from '@kubb/core/utils'\nimport { Const, File } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps) {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n"]}
@@ -1,3 +0,0 @@
1
-
2
- //# sourceMappingURL=chunk-YJOVLRSC.js.map
3
- //# sourceMappingURL=chunk-YJOVLRSC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-YJOVLRSC.js"}
@@ -1,122 +0,0 @@
1
- import { URLPath } from '@kubb/core/utils';
2
- import { isOptional } from '@kubb/oas';
3
- import { getPathParams, getComments } from '@kubb/plugin-oas/utils';
4
- import { createFunctionParams, File, Function, Const } from '@kubb/react';
5
- import { jsx, jsxs } from '@kubb/react/jsx-runtime';
6
-
7
- // src/components/Client.tsx
8
- function Client({ name, options, typedSchemas, operation }) {
9
- const contentType = operation.getContentType();
10
- const baseURL = options.baseURL;
11
- const path = new URLPath(operation.path);
12
- const isFormData = contentType === "multipart/form-data";
13
- const headers = [
14
- contentType !== "application/json" ? `'Content-Type': '${contentType}'` : void 0,
15
- typedSchemas.headerParams?.name ? "...headers" : void 0
16
- ].filter(Boolean);
17
- const params = createFunctionParams({
18
- pathParams: {
19
- mode: options.pathParamsType === "object" ? "object" : "inlineSpread",
20
- children: getPathParams(typedSchemas.pathParams, { typed: true })
21
- },
22
- data: typedSchemas.request?.name ? {
23
- type: typedSchemas.request?.name,
24
- optional: isOptional(typedSchemas.request?.schema)
25
- } : void 0,
26
- params: typedSchemas.queryParams?.name ? {
27
- type: typedSchemas.queryParams?.name,
28
- optional: isOptional(typedSchemas.queryParams?.schema)
29
- } : void 0,
30
- headers: typedSchemas.headerParams?.name ? {
31
- type: typedSchemas.headerParams?.name,
32
- optional: isOptional(typedSchemas.headerParams?.schema)
33
- } : void 0,
34
- options: {
35
- type: "Partial<Parameters<typeof client>[0]>",
36
- default: "{}"
37
- }
38
- });
39
- const clientParams = createFunctionParams({
40
- data: {
41
- mode: "object",
42
- children: {
43
- method: {
44
- type: "string",
45
- value: JSON.stringify(operation.method)
46
- },
47
- url: {
48
- type: "string",
49
- value: path.template
50
- },
51
- baseURL: baseURL ? {
52
- type: "string",
53
- value: JSON.stringify(baseURL)
54
- } : void 0,
55
- params: typedSchemas.queryParams?.name ? {
56
- type: "any"
57
- } : void 0,
58
- data: typedSchemas.request?.name ? {
59
- type: "any",
60
- value: isFormData ? "formData" : void 0
61
- } : void 0,
62
- headers: headers.length ? {
63
- type: "any",
64
- value: headers.length ? `{ ${headers.join(", ")}, ...options.headers }` : void 0
65
- } : void 0,
66
- options: {
67
- type: "any",
68
- mode: "inlineSpread"
69
- }
70
- }
71
- }
72
- });
73
- const formData = isFormData ? `
74
- const formData = new FormData()
75
- if(data) {
76
- Object.keys(data).forEach((key) => {
77
- const value = data[key];
78
- if (typeof key === "string" && (typeof value === "string" || value instanceof Blob)) {
79
- formData.append(key, value);
80
- }
81
- })
82
- }
83
- ` : void 0;
84
- return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxs(
85
- Function,
86
- {
87
- name,
88
- async: true,
89
- export: true,
90
- returnType: options.dataReturnType === "data" ? `ResponseConfig<${typedSchemas.response.name}>["data"]` : `ResponseConfig<${typedSchemas.response.name}>`,
91
- params,
92
- JSDoc: {
93
- comments: getComments(operation)
94
- },
95
- children: [
96
- formData || "",
97
- /* @__PURE__ */ jsx(
98
- Function.Call,
99
- {
100
- name: "res",
101
- to: /* @__PURE__ */ jsx(Function, { name: "client", async: true, generics: [typedSchemas.response.name, typedSchemas.request?.name].filter(Boolean), params: clientParams })
102
- }
103
- ),
104
- /* @__PURE__ */ jsx(Function.Return, { children: options.dataReturnType === "data" ? "res.data" : "res" })
105
- ]
106
- }
107
- ) });
108
- }
109
- function Operations({ name, operations }) {
110
- const operationsObject = {};
111
- operations.forEach((operation) => {
112
- operationsObject[operation.getOperationId()] = {
113
- path: new URLPath(operation.path).URL,
114
- method: operation.method
115
- };
116
- });
117
- return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(Const, { name, export: true, asConst: true, children: JSON.stringify(operationsObject, void 0, 2) }) });
118
- }
119
-
120
- export { Client, Operations };
121
- //# sourceMappingURL=chunk-YXOI7DUX.js.map
122
- //# sourceMappingURL=chunk-YXOI7DUX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Client.tsx","../src/components/Operations.tsx"],"names":["URLPath","jsx","File"],"mappings":"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","file":"chunk-YXOI7DUX.js","sourcesContent":["import { URLPath } from '@kubb/core/utils'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, createFunctionParams } from '@kubb/react'\nimport type { KubbNode, Params } from '@kubb/react/types'\nimport type { PluginClient } from '../types.ts'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n options: PluginClient['resolvedOptions']\n typedSchemas: OperationSchemas\n operation: Operation\n}\n\nexport function Client({ name, options, typedSchemas, operation }: Props): KubbNode {\n const contentType = operation.getContentType()\n const baseURL = options.baseURL\n const path = new URLPath(operation.path)\n const isFormData = contentType === 'multipart/form-data'\n const headers = [\n contentType !== 'application/json' ? `'Content-Type': '${contentType}'` : undefined,\n typedSchemas.headerParams?.name ? '...headers' : undefined,\n ].filter(Boolean)\n\n const params = createFunctionParams({\n pathParams: {\n mode: options.pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typedSchemas.pathParams, { typed: true }),\n },\n data: typedSchemas.request?.name\n ? {\n type: typedSchemas.request?.name,\n optional: isOptional(typedSchemas.request?.schema),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: typedSchemas.queryParams?.name,\n optional: isOptional(typedSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typedSchemas.headerParams?.name\n ? {\n type: typedSchemas.headerParams?.name,\n optional: isOptional(typedSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: 'Partial<Parameters<typeof client>[0]>',\n default: '{}',\n },\n })\n\n const clientParams = createFunctionParams({\n data: {\n mode: 'object',\n children: {\n method: {\n type: 'string',\n value: JSON.stringify(operation.method),\n },\n url: {\n type: 'string',\n value: path.template,\n },\n baseURL: baseURL\n ? {\n type: 'string',\n value: JSON.stringify(baseURL),\n }\n : undefined,\n params: typedSchemas.queryParams?.name\n ? {\n type: 'any',\n }\n : undefined,\n data: typedSchemas.request?.name\n ? {\n type: 'any',\n value: isFormData ? 'formData' : undefined,\n }\n : undefined,\n headers: headers.length\n ? {\n type: 'any',\n value: headers.length ? `{ ${headers.join(', ')}, ...options.headers }` : undefined,\n }\n : undefined,\n options: {\n type: 'any',\n mode: 'inlineSpread',\n },\n },\n },\n })\n\n const formData = isFormData\n ? `\n const formData = new FormData()\n if(data) {\n Object.keys(data).forEach((key) => {\n const value = data[key];\n if (typeof key === \"string\" && (typeof value === \"string\" || value instanceof Blob)) {\n formData.append(key, value);\n }\n })\n }\n `\n : undefined\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n async\n export\n returnType={\n options.dataReturnType === 'data' ? `ResponseConfig<${typedSchemas.response.name}>[\"data\"]` : `ResponseConfig<${typedSchemas.response.name}>`\n }\n params={params}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {formData || ''}\n <Function.Call\n name=\"res\"\n to={<Function name=\"client\" async generics={[typedSchemas.response.name, typedSchemas.request?.name].filter(Boolean)} params={clientParams} />}\n />\n <Function.Return>{options.dataReturnType === 'data' ? 'res.data' : 'res'}</Function.Return>\n </Function>\n </File.Source>\n )\n}\n","import { URLPath } from '@kubb/core/utils'\nimport { Const, File } from '@kubb/react'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype OperationsProps = {\n name: string\n operations: Array<Operation>\n}\n\nexport function Operations({ name, operations }: OperationsProps) {\n const operationsObject: Record<string, { path: string; method: HttpMethod }> = {}\n\n operations.forEach((operation) => {\n operationsObject[operation.getOperationId()] = {\n path: new URLPath(operation.path).URL,\n method: operation.method,\n }\n })\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Const name={name} export asConst>\n {JSON.stringify(operationsObject, undefined, 2)}\n </Const>\n </File.Source>\n )\n}\n"]}
@@ -1,8 +0,0 @@
1
- /**
2
- * @summary Info for a specific pet
3
- * @link /pets/:pet_id
4
- */
5
- export async function showPetById({ petId, testId }: { petId: ShowPetByIdPathParams["pet_id"]; testId: ShowPetByIdPathParams["testId"] }, options: Partial<Parameters<typeof client>[0]> = {}): Promise<ResponseConfig<ShowPetByIdQueryResponse>["data"]> {
6
- const res = await client<ShowPetByIdQueryResponse>({ method : "get", url : `/pets/${petId}`, ... options })
7
- return res.data
8
- }
@@ -1,6 +0,0 @@
1
- export const operations = {
2
- "showPetById": {
3
- "path": "/pets/:pet_id",
4
- "method": "get"
5
- }
6
- } as const
@@ -1,15 +0,0 @@
1
- /**
2
- * @summary Info for a specific pet
3
- * @link /pets/:pet_id */
4
-
5
- export async function showPetById(
6
- { petId, testId }: ShowPetByIdPathParams,
7
- options: Partial<Parameters<typeof client>[0]> = {},
8
- ): Promise<ResponseConfig<ShowPetByIdQueryResponse>['data']> {
9
- const res = await client<ShowPetByIdQueryResponse>({
10
- method: 'get',
11
- url: `/pets/${petId}`,
12
- ...options,
13
- })
14
- return res.data
15
- }
@@ -1,63 +0,0 @@
1
- import { createReactGenerator } from '@kubb/plugin-oas'
2
- import { useOperationManager } from '@kubb/plugin-oas/hooks'
3
- import { pluginTsName } from '@kubb/plugin-ts'
4
- import { File, useApp } from '@kubb/react'
5
- import { Client } from '../components/Client'
6
- import { Operations } from '../components/Operations'
7
- import type { PluginClient } from '../types'
8
-
9
- export const axiosGenerator = createReactGenerator<PluginClient>({
10
- name: 'plugin-client',
11
- Operations({ options, operations }) {
12
- const { pluginManager } = useApp<PluginClient>()
13
-
14
- if (!options.templates.operations) {
15
- return null
16
- }
17
-
18
- const Template = options.templates.operations || Operations
19
- const name = 'operations'
20
- const file = pluginManager.getFile({ name, extName: '.ts', pluginKey: ['plugin-client'] })
21
-
22
- return (
23
- <File baseName={file.baseName} path={file.path} meta={file.meta}>
24
- <Template name={name} operations={operations} />
25
- </File>
26
- )
27
- },
28
- Operation({ options, operation }) {
29
- const { getSchemas, getName, getFile } = useOperationManager()
30
-
31
- const name = getName(operation, { type: 'function' })
32
- const typedSchemas = getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' })
33
- const file = getFile(operation)
34
- const fileType = getFile(operation, { pluginKey: [pluginTsName] })
35
-
36
- if (!options.templates.client) {
37
- return null
38
- }
39
-
40
- const Template = options.templates.client || Client
41
-
42
- return (
43
- <File baseName={file.baseName} path={file.path} meta={file.meta}>
44
- <File.Import name={'client'} path={options.client.importPath} />
45
- <File.Import name={['ResponseConfig']} path={options.client.importPath} isTypeOnly />
46
- <File.Import
47
- extName={options.extName}
48
- name={[
49
- typedSchemas.request?.name,
50
- typedSchemas.response.name,
51
- typedSchemas.pathParams?.name,
52
- typedSchemas.queryParams?.name,
53
- typedSchemas.headerParams?.name,
54
- ].filter(Boolean)}
55
- root={file.path}
56
- path={fileType.path}
57
- isTypeOnly
58
- />
59
- <Template name={name} options={options} typedSchemas={typedSchemas} operation={operation} />
60
- </File>
61
- )
62
- },
63
- })