@kubb/plugin-zod 3.10.2 → 3.10.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.
- package/dist/{chunk-F3XH7OGO.cjs → chunk-DNX5NWTS.cjs} +7 -7
- package/dist/chunk-DNX5NWTS.cjs.map +1 -0
- package/dist/{chunk-WS5LFZBH.js → chunk-U2XZGQID.js} +7 -7
- package/dist/chunk-U2XZGQID.js.map +1 -0
- package/dist/generators.cjs +3 -3
- package/dist/generators.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +10 -10
- package/src/generators/__snapshots__/discriminator.ts +4 -4
- package/src/generators/zodGenerator.tsx +5 -5
- package/dist/chunk-F3XH7OGO.cjs.map +0 -1
- package/dist/chunk-WS5LFZBH.js.map +0 -1
|
@@ -27,10 +27,10 @@ var zodGenerator = pluginOas.createReactGenerator({
|
|
|
27
27
|
override: options.override
|
|
28
28
|
});
|
|
29
29
|
const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean);
|
|
30
|
-
const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options2 }, i) => {
|
|
31
|
-
const required = Array.isArray(
|
|
30
|
+
const mapOperationSchema = ({ name, schema: schemaObject, description, keysToOmit, ...options2 }, i) => {
|
|
31
|
+
const required = Array.isArray(schemaObject?.required) ? !!schemaObject.required.length : !!schemaObject?.required;
|
|
32
32
|
const optional = !required && name.includes("Params");
|
|
33
|
-
const tree = [...schemaGenerator.parse({
|
|
33
|
+
const tree = [...schemaGenerator.parse({ schemaObject, name }), optional ? { keyword: pluginOas.schemaKeywords.optional } : void 0].filter(Boolean);
|
|
34
34
|
const imports = schemaManager.getImports(tree);
|
|
35
35
|
const group = options2.operation ? getGroup(options2.operation) : void 0;
|
|
36
36
|
const zod = {
|
|
@@ -48,7 +48,7 @@ var zodGenerator = pluginOas.createReactGenerator({
|
|
|
48
48
|
group
|
|
49
49
|
})
|
|
50
50
|
};
|
|
51
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(components.Oas.Schema, { name,
|
|
51
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(components.Oas.Schema, { name, schemaObject, tree, children: [
|
|
52
52
|
typed && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, root: file.path, path: type.file.path, name: [type.name] }),
|
|
53
53
|
typed && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, path: "@kubb/plugin-zod/utils", name: ["ToZod"] }),
|
|
54
54
|
imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: file.path, path: imp.path, name: imp.name }, index)),
|
|
@@ -60,7 +60,7 @@ var zodGenerator = pluginOas.createReactGenerator({
|
|
|
60
60
|
inferTypeName: inferred ? zod.inferTypeName : void 0,
|
|
61
61
|
description,
|
|
62
62
|
tree,
|
|
63
|
-
rawSchema:
|
|
63
|
+
rawSchema: schemaObject,
|
|
64
64
|
mapper,
|
|
65
65
|
coercion,
|
|
66
66
|
keysToOmit,
|
|
@@ -174,5 +174,5 @@ var operationsGenerator = pluginOas.createReactGenerator({
|
|
|
174
174
|
|
|
175
175
|
exports.operationsGenerator = operationsGenerator;
|
|
176
176
|
exports.zodGenerator = zodGenerator;
|
|
177
|
-
//# sourceMappingURL=chunk-
|
|
178
|
-
//# sourceMappingURL=chunk-
|
|
177
|
+
//# sourceMappingURL=chunk-DNX5NWTS.cjs.map
|
|
178
|
+
//# sourceMappingURL=chunk-DNX5NWTS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generators/zodGenerator.tsx","../src/generators/operationsGenerator.tsx"],"names":["createReactGenerator","useApp","useOas","useOperationManager","useSchemaManager","SchemaGenerator","options","schemaKeywords","pluginTsName","Oas","File","jsx","Zod","jsxs","getBanner","getFooter","Operations"],"mappings":"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","file":"chunk-DNX5NWTS.cjs","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ operation, options }) {\n const { coercion, inferred, typed, mapper, wrapOutput } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginZod>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema: schemaObject, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {\n // hack so Params can be optional when needed\n const required = Array.isArray(schemaObject?.required) ? !!schemaObject.required.length : !!schemaObject?.required\n const optional = !required && name.includes('Params')\n const tree = [...schemaGenerator.parse({ schemaObject, name }), optional ? { keyword: schemaKeywords.optional } : undefined].filter(Boolean)\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const zod = {\n name: schemaManager.getName(name, { type: 'function' }),\n inferTypeName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, {\n type: 'type',\n pluginKey: [pluginTsName],\n }),\n file: schemaManager.getFile(options.operationName || name, {\n pluginKey: [pluginTsName],\n group,\n }),\n }\n\n return (\n <Oas.Schema key={i} name={name} schemaObject={schemaObject} tree={tree}>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={description}\n tree={tree}\n rawSchema={schemaObject}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['z']} path={plugin.options.importPath} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { coercion, inferred, typed, mapper, importPath, wrapOutput } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n\n const imports = getImports(schema.tree)\n\n const zod = {\n name: getName(schema.name, { type: 'function' }),\n inferTypeName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n return (\n <File\n baseName={zod.file.baseName}\n path={zod.file.path}\n meta={zod.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['z']} path={importPath} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={zod.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={schema.value.description}\n tree={schema.tree}\n rawSchema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n />\n </File>\n )\n },\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const transformedOperations = operations.map((operation) => ({ operation, data: groupSchemasByName(operation, { type: 'function' }) }))\n\n const imports = Object.entries(transformedOperations)\n .map(([key, { data, operation }]) => {\n const names = [data.request, ...Object.values(data.responses), ...Object.values(data.parameters)].filter(Boolean)\n\n return <File.Import key={key} name={names} root={file.path} path={getFile(operation).path} />\n })\n .filter(Boolean)\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 {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n"]}
|
|
@@ -25,10 +25,10 @@ var zodGenerator = createReactGenerator({
|
|
|
25
25
|
override: options.override
|
|
26
26
|
});
|
|
27
27
|
const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response].flat().filter(Boolean);
|
|
28
|
-
const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options2 }, i) => {
|
|
29
|
-
const required = Array.isArray(
|
|
28
|
+
const mapOperationSchema = ({ name, schema: schemaObject, description, keysToOmit, ...options2 }, i) => {
|
|
29
|
+
const required = Array.isArray(schemaObject?.required) ? !!schemaObject.required.length : !!schemaObject?.required;
|
|
30
30
|
const optional = !required && name.includes("Params");
|
|
31
|
-
const tree = [...schemaGenerator.parse({
|
|
31
|
+
const tree = [...schemaGenerator.parse({ schemaObject, name }), optional ? { keyword: schemaKeywords.optional } : void 0].filter(Boolean);
|
|
32
32
|
const imports = schemaManager.getImports(tree);
|
|
33
33
|
const group = options2.operation ? getGroup(options2.operation) : void 0;
|
|
34
34
|
const zod = {
|
|
@@ -46,7 +46,7 @@ var zodGenerator = createReactGenerator({
|
|
|
46
46
|
group
|
|
47
47
|
})
|
|
48
48
|
};
|
|
49
|
-
return /* @__PURE__ */ jsxs(Oas.Schema, { name,
|
|
49
|
+
return /* @__PURE__ */ jsxs(Oas.Schema, { name, schemaObject, tree, children: [
|
|
50
50
|
typed && /* @__PURE__ */ jsx(File.Import, { isTypeOnly: true, root: file.path, path: type.file.path, name: [type.name] }),
|
|
51
51
|
typed && /* @__PURE__ */ jsx(File.Import, { isTypeOnly: true, path: "@kubb/plugin-zod/utils", name: ["ToZod"] }),
|
|
52
52
|
imports.map((imp, index) => /* @__PURE__ */ jsx(File.Import, { root: file.path, path: imp.path, name: imp.name }, index)),
|
|
@@ -58,7 +58,7 @@ var zodGenerator = createReactGenerator({
|
|
|
58
58
|
inferTypeName: inferred ? zod.inferTypeName : void 0,
|
|
59
59
|
description,
|
|
60
60
|
tree,
|
|
61
|
-
rawSchema:
|
|
61
|
+
rawSchema: schemaObject,
|
|
62
62
|
mapper,
|
|
63
63
|
coercion,
|
|
64
64
|
keysToOmit,
|
|
@@ -171,5 +171,5 @@ var operationsGenerator = createReactGenerator({
|
|
|
171
171
|
});
|
|
172
172
|
|
|
173
173
|
export { operationsGenerator, zodGenerator };
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
175
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-U2XZGQID.js.map
|
|
175
|
+
//# sourceMappingURL=chunk-U2XZGQID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generators/zodGenerator.tsx","../src/generators/operationsGenerator.tsx"],"names":["options","createReactGenerator","useApp","useOas","useOperationManager","jsx","File","jsxs","getBanner","getFooter"],"mappings":"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","file":"chunk-U2XZGQID.js","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ operation, options }) {\n const { coercion, inferred, typed, mapper, wrapOutput } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginZod>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema: schemaObject, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {\n // hack so Params can be optional when needed\n const required = Array.isArray(schemaObject?.required) ? !!schemaObject.required.length : !!schemaObject?.required\n const optional = !required && name.includes('Params')\n const tree = [...schemaGenerator.parse({ schemaObject, name }), optional ? { keyword: schemaKeywords.optional } : undefined].filter(Boolean)\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const zod = {\n name: schemaManager.getName(name, { type: 'function' }),\n inferTypeName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, {\n type: 'type',\n pluginKey: [pluginTsName],\n }),\n file: schemaManager.getFile(options.operationName || name, {\n pluginKey: [pluginTsName],\n group,\n }),\n }\n\n return (\n <Oas.Schema key={i} name={name} schemaObject={schemaObject} tree={tree}>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={description}\n tree={tree}\n rawSchema={schemaObject}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['z']} path={plugin.options.importPath} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { coercion, inferred, typed, mapper, importPath, wrapOutput } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n\n const imports = getImports(schema.tree)\n\n const zod = {\n name: getName(schema.name, { type: 'function' }),\n inferTypeName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n return (\n <File\n baseName={zod.file.baseName}\n path={zod.file.path}\n meta={zod.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['z']} path={importPath} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={zod.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={schema.value.description}\n tree={schema.tree}\n rawSchema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n />\n </File>\n )\n },\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const transformedOperations = operations.map((operation) => ({ operation, data: groupSchemasByName(operation, { type: 'function' }) }))\n\n const imports = Object.entries(transformedOperations)\n .map(([key, { data, operation }]) => {\n const names = [data.request, ...Object.values(data.responses), ...Object.values(data.parameters)].filter(Boolean)\n\n return <File.Import key={key} name={names} root={file.path} path={getFile(operation).path} />\n })\n .filter(Boolean)\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 {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n"]}
|
package/dist/generators.cjs
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDNX5NWTS_cjs = require('./chunk-DNX5NWTS.cjs');
|
|
4
4
|
require('./chunk-7GPORWCL.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
Object.defineProperty(exports, "operationsGenerator", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return chunkDNX5NWTS_cjs.operationsGenerator; }
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "zodGenerator", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunkDNX5NWTS_cjs.zodGenerator; }
|
|
15
15
|
});
|
|
16
16
|
//# sourceMappingURL=generators.cjs.map
|
|
17
17
|
//# sourceMappingURL=generators.cjs.map
|
package/dist/generators.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDNX5NWTS_cjs = require('./chunk-DNX5NWTS.cjs');
|
|
4
4
|
require('./chunk-7GPORWCL.cjs');
|
|
5
5
|
var path = require('path');
|
|
6
6
|
var core = require('@kubb/core');
|
|
@@ -29,7 +29,7 @@ var pluginZod = core.createPlugin((options) => {
|
|
|
29
29
|
importPath = "zod",
|
|
30
30
|
coercion = false,
|
|
31
31
|
inferred = false,
|
|
32
|
-
generators = [
|
|
32
|
+
generators = [chunkDNX5NWTS_cjs.zodGenerator, operations ? chunkDNX5NWTS_cjs.operationsGenerator : void 0].filter(Boolean),
|
|
33
33
|
wrapOutput = void 0,
|
|
34
34
|
contentType
|
|
35
35
|
} = options;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { zodGenerator, operationsGenerator } from './chunk-
|
|
1
|
+
import { zodGenerator, operationsGenerator } from './chunk-U2XZGQID.js';
|
|
2
2
|
import './chunk-3KBN4WTO.js';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { createPlugin, PluginManager, FileManager } from '@kubb/core';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-zod",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.4",
|
|
4
4
|
"description": "Generator plugin-zod",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -66,21 +66,21 @@
|
|
|
66
66
|
"!/**/__tests__/**"
|
|
67
67
|
],
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@kubb/
|
|
70
|
-
"@kubb/fs": "3.10.
|
|
71
|
-
"@kubb/
|
|
72
|
-
"@kubb/
|
|
73
|
-
"@kubb/
|
|
74
|
-
"@kubb/plugin-ts": "3.10.
|
|
75
|
-
"@kubb/react": "3.10.
|
|
69
|
+
"@kubb/core": "3.10.4",
|
|
70
|
+
"@kubb/fs": "3.10.4",
|
|
71
|
+
"@kubb/oas": "3.10.4",
|
|
72
|
+
"@kubb/parser-ts": "3.10.4",
|
|
73
|
+
"@kubb/plugin-oas": "3.10.4",
|
|
74
|
+
"@kubb/plugin-ts": "3.10.4",
|
|
75
|
+
"@kubb/react": "3.10.4"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"@asteasolutions/zod-to-openapi": "^7.3.0",
|
|
79
79
|
"@hono/zod-openapi": "0.19.2",
|
|
80
80
|
"tsup": "^8.4.0",
|
|
81
81
|
"zod": "~3.24.3",
|
|
82
|
-
"@kubb/config-ts": "3.10.
|
|
83
|
-
"@kubb/config-tsup": "3.10.
|
|
82
|
+
"@kubb/config-ts": "3.10.4",
|
|
83
|
+
"@kubb/config-tsup": "3.10.4"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"@kubb/react": "^3.0.0"
|
|
@@ -9,28 +9,28 @@ export const advanced = z.union([
|
|
|
9
9
|
.lazy(() => enumerationValueSpecificationDto)
|
|
10
10
|
.and(
|
|
11
11
|
z.object({
|
|
12
|
-
type: z.
|
|
12
|
+
type: z.literal('enum'),
|
|
13
13
|
}),
|
|
14
14
|
),
|
|
15
15
|
z
|
|
16
16
|
.lazy(() => rangeValueSpecificationDto)
|
|
17
17
|
.and(
|
|
18
18
|
z.object({
|
|
19
|
-
type: z.
|
|
19
|
+
type: z.literal('range'),
|
|
20
20
|
}),
|
|
21
21
|
),
|
|
22
22
|
z
|
|
23
23
|
.lazy(() => regexValueSpecificationDto)
|
|
24
24
|
.and(
|
|
25
25
|
z.object({
|
|
26
|
-
type: z.
|
|
26
|
+
type: z.literal('regex'),
|
|
27
27
|
}),
|
|
28
28
|
),
|
|
29
29
|
z
|
|
30
30
|
.lazy(() => sliderValueSpecificationDto)
|
|
31
31
|
.and(
|
|
32
32
|
z.object({
|
|
33
|
-
type: z.
|
|
33
|
+
type: z.literal('slider'),
|
|
34
34
|
}),
|
|
35
35
|
),
|
|
36
36
|
])
|
|
@@ -31,11 +31,11 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
31
31
|
.flat()
|
|
32
32
|
.filter(Boolean)
|
|
33
33
|
|
|
34
|
-
const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {
|
|
34
|
+
const mapOperationSchema = ({ name, schema: schemaObject, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {
|
|
35
35
|
// hack so Params can be optional when needed
|
|
36
|
-
const required = Array.isArray(
|
|
36
|
+
const required = Array.isArray(schemaObject?.required) ? !!schemaObject.required.length : !!schemaObject?.required
|
|
37
37
|
const optional = !required && name.includes('Params')
|
|
38
|
-
const tree = [...schemaGenerator.parse({
|
|
38
|
+
const tree = [...schemaGenerator.parse({ schemaObject, name }), optional ? { keyword: schemaKeywords.optional } : undefined].filter(Boolean)
|
|
39
39
|
const imports = schemaManager.getImports(tree)
|
|
40
40
|
const group = options.operation ? getGroup(options.operation) : undefined
|
|
41
41
|
|
|
@@ -57,7 +57,7 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
return (
|
|
60
|
-
<Oas.Schema key={i} name={name}
|
|
60
|
+
<Oas.Schema key={i} name={name} schemaObject={schemaObject} tree={tree}>
|
|
61
61
|
{typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}
|
|
62
62
|
{typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}
|
|
63
63
|
{imports.map((imp, index) => (
|
|
@@ -69,7 +69,7 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
69
69
|
inferTypeName={inferred ? zod.inferTypeName : undefined}
|
|
70
70
|
description={description}
|
|
71
71
|
tree={tree}
|
|
72
|
-
rawSchema={
|
|
72
|
+
rawSchema={schemaObject}
|
|
73
73
|
mapper={mapper}
|
|
74
74
|
coercion={coercion}
|
|
75
75
|
keysToOmit={keysToOmit}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generators/zodGenerator.tsx","../src/generators/operationsGenerator.tsx"],"names":["createReactGenerator","useApp","useOas","useOperationManager","useSchemaManager","SchemaGenerator","options","schemaKeywords","pluginTsName","Oas","File","jsx","Zod","jsxs","getBanner","getFooter","Operations"],"mappings":"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","file":"chunk-F3XH7OGO.cjs","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ operation, options }) {\n const { coercion, inferred, typed, mapper, wrapOutput } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginZod>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {\n // hack so Params can be optional when needed\n const required = Array.isArray(schema?.required) ? !!schema.required.length : !!schema?.required\n const optional = !required && name.includes('Params')\n const tree = [...schemaGenerator.parse({ schema, name }), optional ? { keyword: schemaKeywords.optional } : undefined].filter(Boolean)\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const zod = {\n name: schemaManager.getName(name, { type: 'function' }),\n inferTypeName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, {\n type: 'type',\n pluginKey: [pluginTsName],\n }),\n file: schemaManager.getFile(options.operationName || name, {\n pluginKey: [pluginTsName],\n group,\n }),\n }\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={description}\n tree={tree}\n rawSchema={schema}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['z']} path={plugin.options.importPath} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { coercion, inferred, typed, mapper, importPath, wrapOutput } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n\n const imports = getImports(schema.tree)\n\n const zod = {\n name: getName(schema.name, { type: 'function' }),\n inferTypeName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n return (\n <File\n baseName={zod.file.baseName}\n path={zod.file.path}\n meta={zod.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['z']} path={importPath} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={zod.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={schema.value.description}\n tree={schema.tree}\n rawSchema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n />\n </File>\n )\n },\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const transformedOperations = operations.map((operation) => ({ operation, data: groupSchemasByName(operation, { type: 'function' }) }))\n\n const imports = Object.entries(transformedOperations)\n .map(([key, { data, operation }]) => {\n const names = [data.request, ...Object.values(data.responses), ...Object.values(data.parameters)].filter(Boolean)\n\n return <File.Import key={key} name={names} root={file.path} path={getFile(operation).path} />\n })\n .filter(Boolean)\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 {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generators/zodGenerator.tsx","../src/generators/operationsGenerator.tsx"],"names":["options","createReactGenerator","useApp","useOas","useOperationManager","jsx","File","jsxs","getBanner","getFooter"],"mappings":";;;;;;;;;AASO,IAAM,eAAe,oBAAgC,CAAA;AAAA,EAC1D,IAAM,EAAA,KAAA;AAAA,EACN,SAAU,CAAA,EAAE,SAAW,EAAA,OAAA,EAAW,EAAA;AAChC,IAAA,MAAM,EAAE,QAAU,EAAA,QAAA,EAAU,KAAO,EAAA,MAAA,EAAQ,YAAe,GAAA,OAAA;AAE1D,IAAA,MAAM,EAAE,MAAA,EAAQ,aAAe,EAAA,IAAA,KAAS,MAAkB,EAAA;AAC1D,IAAA,MAAM,MAAM,MAAO,EAAA;AACnB,IAAA,MAAM,EAAE,UAAA,EAAY,OAAS,EAAA,QAAA,KAAa,mBAAoB,EAAA;AAC9D,IAAA,MAAM,gBAAgB,gBAAiB,EAAA;AAEvC,IAAM,MAAA,IAAA,GAAO,QAAQ,SAAS,CAAA;AAC9B,IAAM,MAAA,OAAA,GAAU,WAAW,SAAS,CAAA;AACpC,IAAM,MAAA,eAAA,GAAkB,IAAI,eAAA,CAAgB,OAAS,EAAA;AAAA,MACnD,GAAA;AAAA,MACA,MAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAU,OAAQ,CAAA;AAAA,KACnB,CAAA;AAED,IAAA,MAAM,mBAAmB,CAAC,OAAA,CAAQ,YAAY,OAAQ,CAAA,WAAA,EAAa,QAAQ,YAAc,EAAA,OAAA,CAAQ,WAAa,EAAA,OAAA,CAAQ,SAAS,OAAQ,CAAA,QAAQ,EAC5I,IAAK,EAAA,CACL,OAAO,OAAO,CAAA;AAEjB,IAAM,MAAA,kBAAA,GAAqB,CAAC,EAAE,IAAM,EAAA,MAAA,EAAQ,aAAa,UAAY,EAAA,GAAGA,QAAQ,EAAA,EAAwB,CAAc,KAAA;AAEpH,MAAA,MAAM,QAAW,GAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,EAAQ,QAAQ,CAAA,GAAI,CAAC,CAAC,MAAO,CAAA,QAAA,CAAS,MAAS,GAAA,CAAC,CAAC,MAAQ,EAAA,QAAA;AACxF,MAAA,MAAM,QAAW,GAAA,CAAC,QAAY,IAAA,IAAA,CAAK,SAAS,QAAQ,CAAA;AACpD,MAAA,MAAM,OAAO,CAAC,GAAG,gBAAgB,KAAM,CAAA,EAAE,QAAQ,IAAK,EAAC,GAAG,QAAW,GAAA,EAAE,SAAS,cAAe,CAAA,QAAA,KAAa,MAAS,CAAA,CAAE,OAAO,OAAO,CAAA;AACrI,MAAM,MAAA,OAAA,GAAU,aAAc,CAAA,UAAA,CAAW,IAAI,CAAA;AAC7C,MAAA,MAAM,QAAQA,QAAQ,CAAA,SAAA,GAAY,QAASA,CAAAA,QAAAA,CAAQ,SAAS,CAAI,GAAA,MAAA;AAEhE,MAAA,MAAM,GAAM,GAAA;AAAA,QACV,MAAM,aAAc,CAAA,OAAA,CAAQ,MAAM,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,QACtD,eAAe,aAAc,CAAA,OAAA,CAAQ,MAAM,EAAE,IAAA,EAAM,QAAQ,CAAA;AAAA,QAC3D,IAAA,EAAM,aAAc,CAAA,OAAA,CAAQ,IAAI;AAAA,OAClC;AAEA,MAAA,MAAM,IAAO,GAAA;AAAA,QACX,IAAA,EAAM,aAAc,CAAA,OAAA,CAAQ,IAAM,EAAA;AAAA,UAChC,IAAM,EAAA,MAAA;AAAA,UACN,SAAA,EAAW,CAAC,YAAY;AAAA,SACzB,CAAA;AAAA,QACD,IAAM,EAAA,aAAA,CAAc,OAAQA,CAAAA,QAAAA,CAAQ,iBAAiB,IAAM,EAAA;AAAA,UACzD,SAAA,EAAW,CAAC,YAAY,CAAA;AAAA,UACxB;AAAA,SACD;AAAA,OACH;AAEA,MAAA,4BACG,GAAI,CAAA,MAAA,EAAJ,EAAmB,IAAY,EAAA,KAAA,EAAO,QAAQ,IAC5C,EAAA,QAAA,EAAA;AAAA,QAAA,KAAA,wBAAU,IAAK,CAAA,MAAA,EAAL,EAAY,UAAA,EAAU,MAAC,IAAM,EAAA,IAAA,CAAK,IAAM,EAAA,IAAA,EAAM,KAAK,IAAK,CAAA,IAAA,EAAM,MAAM,CAAC,IAAA,CAAK,IAAI,CAAG,EAAA,CAAA;AAAA,QAC3F,KAAS,oBAAA,GAAA,CAAC,IAAK,CAAA,MAAA,EAAL,EAAY,UAAA,EAAU,IAAC,EAAA,IAAA,EAAM,wBAA0B,EAAA,IAAA,EAAM,CAAC,OAAO,CAAG,EAAA,CAAA;AAAA,QAClF,QAAQ,GAAI,CAAA,CAAC,KAAK,KACjB,qBAAA,GAAA,CAAC,KAAK,MAAL,EAAA,EAAwB,MAAM,IAAK,CAAA,IAAA,EAAM,MAAM,GAAI,CAAA,IAAA,EAAM,MAAM,GAAI,CAAA,IAAA,EAAA,EAAlD,KAAwD,CAC3E,CAAA;AAAA,wBACD,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,MAAM,GAAI,CAAA,IAAA;AAAA,YACV,QAAA,EAAU,KAAQ,GAAA,IAAA,CAAK,IAAO,GAAA,MAAA;AAAA,YAC9B,aAAA,EAAe,QAAW,GAAA,GAAA,CAAI,aAAgB,GAAA,MAAA;AAAA,YAC9C,WAAA;AAAA,YACA,IAAA;AAAA,YACA,SAAW,EAAA,MAAA;AAAA,YACX,MAAA;AAAA,YACA,QAAA;AAAA,YACA,UAAA;AAAA,YACA;AAAA;AAAA;AACF,OAAA,EAAA,EAjBe,CAkBjB,CAAA;AAAA,KAEJ;AAEA,IACE,uBAAA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,MAAM,IAAK,CAAA,IAAA;AAAA,QACX,MAAM,IAAK,CAAA,IAAA;AAAA,QACX,MAAA,EAAQ,SAAU,CAAA,EAAE,GAAK,EAAA,MAAA,EAAQ,MAAO,CAAA,OAAA,CAAQ,MAAQ,EAAA,MAAA,EAAQ,aAAc,CAAA,MAAA,EAAQ,CAAA;AAAA,QACtF,MAAA,EAAQ,UAAU,EAAE,GAAA,EAAK,QAAQ,MAAO,CAAA,OAAA,CAAQ,QAAQ,CAAA;AAAA,QAExD,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,IAAA,CAAK,MAAL,EAAA,EAAY,IAAM,EAAA,CAAC,GAAG,CAAG,EAAA,IAAA,EAAM,MAAO,CAAA,OAAA,CAAQ,UAAY,EAAA,CAAA;AAAA,UAC1D,gBAAA,CAAiB,IAAI,kBAAkB;AAAA;AAAA;AAAA,KAC1C;AAAA,GAEJ;AAAA,EACA,MAAO,CAAA,EAAE,MAAQ,EAAA,OAAA,EAAW,EAAA;AAC1B,IAAA,MAAM,EAAE,QAAU,EAAA,QAAA,EAAU,OAAO,MAAQ,EAAA,UAAA,EAAY,YAAe,GAAA,OAAA;AAEtE,IAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,UAAA,KAAe,gBAAiB,EAAA;AAC1D,IAAM,MAAA;AAAA,MACJ,aAAA;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,OAAA,EAAS,EAAE,MAAO;AAAA;AACpB,QACE,MAAkB,EAAA;AACtB,IAAA,MAAM,MAAM,MAAO,EAAA;AAEnB,IAAM,MAAA,OAAA,GAAU,UAAW,CAAA,MAAA,CAAO,IAAI,CAAA;AAEtC,IAAA,MAAM,GAAM,GAAA;AAAA,MACV,MAAM,OAAQ,CAAA,MAAA,CAAO,MAAM,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,MAC/C,eAAe,OAAQ,CAAA,MAAA,CAAO,MAAM,EAAE,IAAA,EAAM,QAAQ,CAAA;AAAA,MACpD,IAAA,EAAM,OAAQ,CAAA,MAAA,CAAO,IAAI;AAAA,KAC3B;AAEA,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,IAAA,EAAM,OAAQ,CAAA,MAAA,CAAO,IAAM,EAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,SAAW,EAAA,CAAC,YAAY,CAAA,EAAG,CAAA;AAAA,MACtE,IAAA,EAAM,QAAQ,MAAO,CAAA,IAAA,EAAM,EAAE,SAAW,EAAA,CAAC,YAAY,CAAA,EAAG;AAAA,KAC1D;AAEA,IACE,uBAAA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAU,IAAI,IAAK,CAAA,QAAA;AAAA,QACnB,IAAA,EAAM,IAAI,IAAK,CAAA,IAAA;AAAA,QACf,IAAA,EAAM,IAAI,IAAK,CAAA,IAAA;AAAA,QACf,MAAA,EAAQ,UAAU,EAAE,GAAA,EAAK,QAAQ,MAAQ,EAAA,aAAA,CAAc,QAAQ,CAAA;AAAA,QAC/D,MAAQ,EAAA,SAAA,CAAU,EAAE,GAAA,EAAK,QAAQ,CAAA;AAAA,QAEjC,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,IAAA,CAAK,QAAL,EAAY,IAAA,EAAM,CAAC,GAAG,CAAA,EAAG,MAAM,UAAY,EAAA,CAAA;AAAA,UAC3C,yBAAU,GAAA,CAAA,IAAA,CAAK,QAAL,EAAY,UAAA,EAAU,MAAC,IAAM,EAAA,GAAA,CAAI,KAAK,IAAM,EAAA,IAAA,EAAM,KAAK,IAAK,CAAA,IAAA,EAAM,MAAM,CAAC,IAAA,CAAK,IAAI,CAAG,EAAA,CAAA;AAAA,UAC/F,KAAS,oBAAA,GAAA,CAAC,IAAK,CAAA,MAAA,EAAL,EAAY,UAAA,EAAU,IAAC,EAAA,IAAA,EAAM,wBAA0B,EAAA,IAAA,EAAM,CAAC,OAAO,CAAG,EAAA,CAAA;AAAA,UAClF,OAAA,CAAQ,IAAI,CAAC,GAAA,EAAK,0BAChB,GAAA,CAAA,IAAA,CAAK,QAAL,EAAwB,IAAA,EAAM,IAAI,IAAK,CAAA,IAAA,EAAM,MAAM,GAAI,CAAA,IAAA,EAAM,MAAM,GAAI,CAAA,IAAA,EAAA,EAAtD,KAA4D,CAC/E,CAAA;AAAA,0BAED,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,MAAM,GAAI,CAAA,IAAA;AAAA,cACV,QAAA,EAAU,KAAQ,GAAA,IAAA,CAAK,IAAO,GAAA,MAAA;AAAA,cAC9B,aAAA,EAAe,QAAW,GAAA,GAAA,CAAI,aAAgB,GAAA,MAAA;AAAA,cAC9C,WAAA,EAAa,OAAO,KAAM,CAAA,WAAA;AAAA,cAC1B,MAAM,MAAO,CAAA,IAAA;AAAA,cACb,WAAW,MAAO,CAAA,KAAA;AAAA,cAClB,MAAA;AAAA,cACA,QAAA;AAAA,cACA;AAAA;AAAA;AACF;AAAA;AAAA,KACF;AAAA;AAGN,CAAC;AC7IM,IAAM,sBAAsBC,oBAAgC,CAAA;AAAA,EACjE,IAAM,EAAA,YAAA;AAAA,EACN,UAAA,CAAW,EAAE,UAAA,EAAc,EAAA;AACzB,IAAM,MAAA;AAAA,MACJ,aAAA;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,GAAK,EAAA,SAAA;AAAA,QACL,OAAA,EAAS,EAAE,MAAO;AAAA;AACpB,QACEC,MAAkB,EAAA;AACtB,IAAA,MAAM,MAAMC,MAAO,EAAA;AACnB,IAAA,MAAM,EAAE,OAAA,EAAS,kBAAmB,EAAA,GAAIC,mBAAoB,EAAA;AAE5D,IAAA,MAAM,IAAO,GAAA,YAAA;AACb,IAAM,MAAA,IAAA,GAAO,cAAc,OAAQ,CAAA,EAAE,MAAM,OAAS,EAAA,KAAA,EAAO,WAAW,CAAA;AAEtE,IAAA,MAAM,qBAAwB,GAAA,UAAA,CAAW,GAAI,CAAA,CAAC,eAAe,EAAE,SAAA,EAAW,IAAM,EAAA,kBAAA,CAAmB,WAAW,EAAE,IAAA,EAAM,UAAW,EAAC,GAAI,CAAA,CAAA;AAEtI,IAAA,MAAM,OAAU,GAAA,MAAA,CAAO,OAAQ,CAAA,qBAAqB,CACjD,CAAA,GAAA,CAAI,CAAC,CAAC,GAAK,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,CAAM,KAAA;AACnC,MAAA,MAAM,QAAQ,CAAC,IAAA,CAAK,SAAS,GAAG,MAAA,CAAO,OAAO,IAAK,CAAA,SAAS,CAAG,EAAA,GAAG,OAAO,MAAO,CAAA,IAAA,CAAK,UAAU,CAAC,CAAA,CAAE,OAAO,OAAO,CAAA;AAEhH,MAAA,uBAAOC,GAAAA,CAACC,IAAK,CAAA,MAAA,EAAL,EAAsB,IAAM,EAAA,KAAA,EAAO,IAAM,EAAA,IAAA,CAAK,MAAM,IAAM,EAAA,OAAA,CAAQ,SAAS,CAAA,CAAE,QAA5D,GAAkE,CAAA;AAAA,KAC5F,CACA,CAAA,MAAA,CAAO,OAAO,CAAA;AAEjB,IAAA,uBACEC,IAAAA;AAAA,MAACD,IAAAA;AAAA,MAAA;AAAA,QACC,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,MAAM,IAAK,CAAA,IAAA;AAAA,QACX,MAAM,IAAK,CAAA,IAAA;AAAA,QACX,MAAA,EAAQE,UAAU,EAAE,GAAA,EAAK,QAAQ,MAAQ,EAAA,aAAA,CAAc,QAAQ,CAAA;AAAA,QAC/D,MAAQC,EAAAA,SAAAA,CAAU,EAAE,GAAA,EAAK,QAAQ,CAAA;AAAA,QAEhC,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,0BACDJ,GAAAA,CAAC,UAAW,EAAA,EAAA,IAAA,EAAY,YAAY,qBAAuB,EAAA;AAAA;AAAA;AAAA,KAC7D;AAAA;AAGN,CAAC","file":"chunk-WS5LFZBH.js","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ operation, options }) {\n const { coercion, inferred, typed, mapper, wrapOutput } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginZod>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {\n // hack so Params can be optional when needed\n const required = Array.isArray(schema?.required) ? !!schema.required.length : !!schema?.required\n const optional = !required && name.includes('Params')\n const tree = [...schemaGenerator.parse({ schema, name }), optional ? { keyword: schemaKeywords.optional } : undefined].filter(Boolean)\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const zod = {\n name: schemaManager.getName(name, { type: 'function' }),\n inferTypeName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, {\n type: 'type',\n pluginKey: [pluginTsName],\n }),\n file: schemaManager.getFile(options.operationName || name, {\n pluginKey: [pluginTsName],\n group,\n }),\n }\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={description}\n tree={tree}\n rawSchema={schema}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['z']} path={plugin.options.importPath} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { coercion, inferred, typed, mapper, importPath, wrapOutput } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n pluginManager,\n plugin: {\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n\n const imports = getImports(schema.tree)\n\n const zod = {\n name: getName(schema.name, { type: 'function' }),\n inferTypeName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n return (\n <File\n baseName={zod.file.baseName}\n path={zod.file.path}\n meta={zod.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['z']} path={importPath} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={zod.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={schema.value.description}\n tree={schema.tree}\n rawSchema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n />\n </File>\n )\n },\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const transformedOperations = operations.map((operation) => ({ operation, data: groupSchemasByName(operation, { type: 'function' }) }))\n\n const imports = Object.entries(transformedOperations)\n .map(([key, { data, operation }]) => {\n const names = [data.request, ...Object.values(data.responses), ...Object.values(data.parameters)].filter(Boolean)\n\n return <File.Import key={key} name={names} root={file.path} path={getFile(operation).path} />\n })\n .filter(Boolean)\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 {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n"]}
|