@kubb/plugin-ts 3.2.0 → 3.3.0

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 (73) hide show
  1. package/dist/{chunk-KFZ72XC5.cjs → chunk-2M6PDW4T.cjs} +19 -15
  2. package/dist/chunk-2M6PDW4T.cjs.map +1 -0
  3. package/dist/{chunk-OJLL42LQ.js → chunk-65CJCKDZ.js} +44 -40
  4. package/dist/chunk-65CJCKDZ.js.map +1 -0
  5. package/dist/{chunk-UE4AMVPZ.cjs → chunk-WETJULJE.cjs} +42 -39
  6. package/dist/chunk-WETJULJE.cjs.map +1 -0
  7. package/dist/{chunk-S2CJKQ76.js → chunk-Z7RYCWNL.js} +11 -7
  8. package/dist/chunk-Z7RYCWNL.js.map +1 -0
  9. package/dist/components.cjs +3 -3
  10. package/dist/components.d.cts +3 -2
  11. package/dist/components.d.ts +3 -2
  12. package/dist/components.js +1 -1
  13. package/dist/generators.cjs +4 -4
  14. package/dist/generators.d.cts +1 -1
  15. package/dist/generators.d.ts +1 -1
  16. package/dist/generators.js +2 -2
  17. package/dist/index.cjs +4 -4
  18. package/dist/index.d.cts +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +2 -2
  21. package/dist/{types-Dy6NIaQp.d.cts → types-9taMMp9y.d.cts} +6 -0
  22. package/dist/{types-Dy6NIaQp.d.ts → types-9taMMp9y.d.ts} +6 -0
  23. package/package.json +9 -9
  24. package/src/components/Type.tsx +45 -39
  25. package/src/generators/__snapshots__/bodyUploadFileApiAssetsPost.ts +5 -5
  26. package/src/generators/__snapshots__/catTypeAsConst.ts +10 -10
  27. package/src/generators/__snapshots__/createPet.ts +27 -28
  28. package/src/generators/__snapshots__/createPetWithUnknownTypeUnknown.ts +27 -28
  29. package/src/generators/__snapshots__/deletePet.ts +5 -6
  30. package/src/generators/__snapshots__/dogTypeAsConst.ts +10 -10
  31. package/src/generators/__snapshots__/enumAllOf.ts +7 -7
  32. package/src/generators/__snapshots__/enumArray.ts +12 -16
  33. package/src/generators/__snapshots__/enumInObject.ts +10 -10
  34. package/src/generators/__snapshots__/enumItems.ts +5 -5
  35. package/src/generators/__snapshots__/enumNames.ts +3 -3
  36. package/src/generators/__snapshots__/enumNamesConst.ts +3 -3
  37. package/src/generators/__snapshots__/enumNamesLiteral.ts +2 -2
  38. package/src/generators/__snapshots__/enumNamesPascalConst.ts +5 -5
  39. package/src/generators/__snapshots__/enumNamesType.ts +5 -5
  40. package/src/generators/__snapshots__/enumNullableMember.ts +5 -5
  41. package/src/generators/__snapshots__/enumNullableType.ts +5 -5
  42. package/src/generators/__snapshots__/enumString.ts +7 -7
  43. package/src/generators/__snapshots__/enumVarNamesType.ts +5 -5
  44. package/src/generators/__snapshots__/getPets.ts +19 -20
  45. package/src/generators/__snapshots__/mixedValueTypeConst.ts +6 -6
  46. package/src/generators/__snapshots__/nullConstNull.ts +4 -5
  47. package/src/generators/__snapshots__/numberValueConst.ts +6 -6
  48. package/src/generators/__snapshots__/petMapper.ts +14 -14
  49. package/src/generators/__snapshots__/petQuestionToken.ts +18 -19
  50. package/src/generators/__snapshots__/petQuestionTokenAndUndefined.ts +18 -19
  51. package/src/generators/__snapshots__/petUndefined.ts +18 -19
  52. package/src/generators/__snapshots__/pets.ts +13 -13
  53. package/src/generators/__snapshots__/petsInterface.ts +14 -0
  54. package/src/generators/__snapshots__/petsStoreAdvancedDiscriminator.ts +32 -29
  55. package/src/generators/__snapshots__/petsStoreDiscriminator.ts +10 -10
  56. package/src/generators/__snapshots__/petsStoreRef.ts +1 -1
  57. package/src/generators/__snapshots__/plainDateDate.ts +1 -1
  58. package/src/generators/__snapshots__/plainDateString.ts +1 -1
  59. package/src/generators/__snapshots__/plainEmail.ts +1 -1
  60. package/src/generators/__snapshots__/plainFile.ts +1 -1
  61. package/src/generators/__snapshots__/plainTimeDate.ts +1 -1
  62. package/src/generators/__snapshots__/plainUuid.ts +1 -1
  63. package/src/generators/__snapshots__/readOnly.ts +19 -20
  64. package/src/generators/__snapshots__/showPetById.ts +24 -25
  65. package/src/generators/__snapshots__/stringValueConst.ts +6 -6
  66. package/src/generators/typeGenerator.tsx +4 -2
  67. package/src/parser/index.ts +2 -1
  68. package/src/plugin.ts +2 -0
  69. package/src/types.ts +6 -0
  70. package/dist/chunk-KFZ72XC5.cjs.map +0 -1
  71. package/dist/chunk-OJLL42LQ.js.map +0 -1
  72. package/dist/chunk-S2CJKQ76.js.map +0 -1
  73. package/dist/chunk-UE4AMVPZ.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkUE4AMVPZ_cjs = require('./chunk-UE4AMVPZ.cjs');
3
+ var chunkWETJULJE_cjs = require('./chunk-WETJULJE.cjs');
4
4
  var transformers = require('@kubb/core/transformers');
5
5
  var parserTs = require('@kubb/parser-ts');
6
6
  var factory = require('@kubb/parser-ts/factory');
@@ -37,16 +37,16 @@ var factory__namespace = /*#__PURE__*/_interopNamespace(factory);
37
37
  var path__default = /*#__PURE__*/_interopDefault(path);
38
38
 
39
39
  // src/generators/index.ts
40
- chunkUE4AMVPZ_cjs.init_cjs_shims();
40
+ chunkWETJULJE_cjs.init_cjs_shims();
41
41
 
42
42
  // src/generators/typeGenerator.tsx
43
- chunkUE4AMVPZ_cjs.init_cjs_shims();
43
+ chunkWETJULJE_cjs.init_cjs_shims();
44
44
 
45
45
  // src/index.ts
46
- chunkUE4AMVPZ_cjs.init_cjs_shims();
46
+ chunkWETJULJE_cjs.init_cjs_shims();
47
47
 
48
48
  // src/plugin.ts
49
- chunkUE4AMVPZ_cjs.init_cjs_shims();
49
+ chunkWETJULJE_cjs.init_cjs_shims();
50
50
  var pluginTsName = "plugin-ts";
51
51
  var pluginTs = core.createPlugin((options) => {
52
52
  const {
@@ -60,6 +60,7 @@ var pluginTs = core.createPlugin((options) => {
60
60
  dateType = "string",
61
61
  unknownType = "any",
62
62
  optionalType = "questionToken",
63
+ syntaxType = "type",
63
64
  transformers: transformers2 = {},
64
65
  oasType = false,
65
66
  mapper = {},
@@ -78,6 +79,7 @@ var pluginTs = core.createPlugin((options) => {
78
79
  // keep the used enumnames between SchemaGenerator and OperationGenerator per plugin(pluginKey)
79
80
  usedEnumNames: {},
80
81
  unknownType,
82
+ syntaxType,
81
83
  group,
82
84
  override,
83
85
  mapper
@@ -229,7 +231,7 @@ function printCombinedSchema({ name, schemas, pluginManager }) {
229
231
  var typeGenerator = pluginOas.createReactGenerator({
230
232
  name: "typescript",
231
233
  Operation({ operation, options }) {
232
- const { mapper, enumType, optionalType } = options;
234
+ const { mapper, enumType, syntaxType, optionalType } = options;
233
235
  const { plugin, pluginManager, mode } = react.useApp();
234
236
  const oas = hooks.useOas();
235
237
  const { getSchemas, getFile, getName, getGroup } = hooks.useOperationManager();
@@ -258,7 +260,7 @@ var typeGenerator = pluginOas.createReactGenerator({
258
260
  return /* @__PURE__ */ jsxRuntime.jsxs(components.Oas.Schema, { name, value: schema, tree, children: [
259
261
  mode === "split" && imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: file.path, path: imp.path, name: imp.name, isTypeOnly: true }, index)),
260
262
  /* @__PURE__ */ jsxRuntime.jsx(
261
- chunkUE4AMVPZ_cjs.Type,
263
+ chunkWETJULJE_cjs.Type,
262
264
  {
263
265
  name: type2.name,
264
266
  typedName: type2.typedName,
@@ -267,7 +269,8 @@ var typeGenerator = pluginOas.createReactGenerator({
267
269
  mapper,
268
270
  enumType,
269
271
  optionalType,
270
- keysToOmit
272
+ keysToOmit,
273
+ syntaxType
271
274
  }
272
275
  )
273
276
  ] }, i);
@@ -278,7 +281,7 @@ var typeGenerator = pluginOas.createReactGenerator({
278
281
  ] });
279
282
  },
280
283
  Schema({ schema, options }) {
281
- const { mapper, enumType, optionalType } = options;
284
+ const { mapper, enumType, syntaxType, optionalType } = options;
282
285
  const {
283
286
  mode,
284
287
  plugin: {
@@ -298,7 +301,7 @@ var typeGenerator = pluginOas.createReactGenerator({
298
301
  return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: type.file.baseName, path: type.file.path, meta: type.file.meta, banner: output?.banner, footer: output?.footer, children: [
299
302
  mode === "split" && imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: type.file.path, path: imp.path, name: imp.name, isTypeOnly: true }, index)),
300
303
  /* @__PURE__ */ jsxRuntime.jsx(
301
- chunkUE4AMVPZ_cjs.Type,
304
+ chunkWETJULJE_cjs.Type,
302
305
  {
303
306
  name: type.name,
304
307
  typedName: type.typedName,
@@ -306,7 +309,8 @@ var typeGenerator = pluginOas.createReactGenerator({
306
309
  tree: schema.tree,
307
310
  mapper,
308
311
  enumType,
309
- optionalType
312
+ optionalType,
313
+ syntaxType
310
314
  }
311
315
  )
312
316
  ] });
@@ -314,7 +318,7 @@ var typeGenerator = pluginOas.createReactGenerator({
314
318
  });
315
319
 
316
320
  // src/generators/oasGenerator.tsx
317
- chunkUE4AMVPZ_cjs.init_cjs_shims();
321
+ chunkWETJULJE_cjs.init_cjs_shims();
318
322
  var oasGenerator = pluginOas.createReactGenerator({
319
323
  name: "oas",
320
324
  Operations() {
@@ -329,7 +333,7 @@ var oasGenerator = pluginOas.createReactGenerator({
329
333
  const file = pluginManager.getFile({ name: "oas", extname: ".ts", pluginKey });
330
334
  return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: output?.banner, footer: output?.footer, children: [
331
335
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["Infer"], path: "@kubb/oas", isTypeOnly: true }),
332
- /* @__PURE__ */ jsxRuntime.jsx(chunkUE4AMVPZ_cjs.OasType, { name: "oas", typeName: "Oas", api: oas.api })
336
+ /* @__PURE__ */ jsxRuntime.jsx(chunkWETJULJE_cjs.OasType, { name: "oas", typeName: "Oas", api: oas.api })
333
337
  ] });
334
338
  }
335
339
  });
@@ -338,5 +342,5 @@ exports.oasGenerator = oasGenerator;
338
342
  exports.pluginTs = pluginTs;
339
343
  exports.pluginTsName = pluginTsName;
340
344
  exports.typeGenerator = typeGenerator;
341
- //# sourceMappingURL=chunk-KFZ72XC5.cjs.map
342
- //# sourceMappingURL=chunk-KFZ72XC5.cjs.map
345
+ //# sourceMappingURL=chunk-2M6PDW4T.cjs.map
346
+ //# sourceMappingURL=chunk-2M6PDW4T.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/index.ts","../src/generators/typeGenerator.tsx","../src/index.ts","../src/plugin.ts","../src/generators/oasGenerator.tsx"],"names":["init_cjs_shims","createPlugin","transformers","pluginOasName","options","path","FileManager","camelCase","pascalCase","PluginManager","SchemaGenerator","OperationGenerator","factory","print","createReactGenerator","useApp","useOas","useOperationManager","useSchemaManager","type","Oas","jsx","File","Type","jsxs","OasType"],"mappings":"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","file":"chunk-2M6PDW4T.cjs","sourcesContent":["export { typeGenerator } from './typeGenerator.tsx'\nexport { oasGenerator } from './oasGenerator.tsx'\n","import type { PluginManager } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser-ts'\nimport * as factory from '@kubb/parser-ts/factory'\nimport { type OperationSchema as OperationSchemaType, type OperationSchemas, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport type ts from 'typescript'\nimport { Type } from '../components'\nimport type { PluginTs } from '../types'\n\nfunction printCombinedSchema({ name, schemas, pluginManager }: { name: string; schemas: OperationSchemas; pluginManager: PluginManager }): string {\n const properties: Record<string, ts.TypeNode> = {}\n\n if (schemas.response) {\n properties['response'] = factory.createUnionDeclaration({\n nodes: schemas.responses.map((res) => {\n const identifier = pluginManager.resolveName({\n name: res.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n\n return factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }),\n })!\n }\n\n if (schemas.request) {\n const identifier = pluginManager.resolveName({\n name: schemas.request.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['request'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.pathParams) {\n const identifier = pluginManager.resolveName({\n name: schemas.pathParams.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['pathParams'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.queryParams) {\n const identifier = pluginManager.resolveName({\n name: schemas.queryParams.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['queryParams'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.headerParams) {\n const identifier = pluginManager.resolveName({\n name: schemas.headerParams.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n properties['headerParams'] = factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }\n\n if (schemas.errors) {\n properties['errors'] = factory.createUnionDeclaration({\n nodes: schemas.errors.map((error) => {\n const identifier = pluginManager.resolveName({\n name: error.name,\n pluginKey: [pluginTsName],\n type: 'function',\n })\n\n return factory.createTypeReferenceNode(factory.createIdentifier(identifier), undefined)\n }),\n })!\n }\n\n const namespaceNode = factory.createTypeAliasDeclaration({\n name,\n type: factory.createTypeLiteralNode(\n Object.keys(properties)\n .map((key) => {\n const type = properties[key]\n if (!type) {\n return undefined\n }\n\n return factory.createPropertySignature({\n name: transformers.pascalCase(key),\n type,\n })\n })\n .filter(Boolean),\n ),\n modifiers: [factory.modifiers.export],\n })\n\n return print([namespaceNode])\n}\n\nexport const typeGenerator = createReactGenerator<PluginTs>({\n name: 'typescript',\n Operation({ operation, options }) {\n const { mapper, enumType, syntaxType, optionalType } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginTs>()\n const oas = useOas()\n const { getSchemas, getFile, getName, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const type = getName(operation, { type: 'function', pluginKey: [pluginTsName] })\n const combinedSchemaName = operation.method === 'get' ? `${type}Query` : `${type}Mutation`\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 const tree = schemaGenerator.parse({ schema, name })\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation, plugin.options.group) : undefined\n\n const type = {\n name: schemaManager.getName(name, { type: 'type' }),\n typedName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(options.operationName || name, { group }),\n }\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {mode === 'split' && imports.map((imp, index) => <File.Import key={index} root={file.path} path={imp.path} name={imp.name} isTypeOnly />)}\n <Type\n name={type.name}\n typedName={type.typedName}\n description={description}\n tree={tree}\n mapper={mapper}\n enumType={enumType}\n optionalType={optionalType}\n keysToOmit={keysToOmit}\n syntaxType={syntaxType}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={plugin.options.output?.banner} footer={plugin.options.output?.footer}>\n {operationSchemas.map(mapOperationSchema)}\n\n <File.Source name={combinedSchemaName} isExportable isIndexable isTypeOnly>\n {printCombinedSchema({ name: combinedSchemaName, schemas, pluginManager })}\n </File.Source>\n </File>\n )\n },\n Schema({ schema, options }) {\n const { mapper, enumType, syntaxType, optionalType } = options\n const {\n mode,\n plugin: {\n options: { output },\n },\n } = useApp<PluginTs>()\n\n const { getName, getImports, getFile } = useSchemaManager()\n const imports = getImports(schema.tree)\n\n if (enumType === 'asPascalConst') {\n console.warn(`enumType '${enumType}' is deprecated`)\n }\n\n const type = {\n name: getName(schema.name, { type: 'function' }),\n typedName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n return (\n <File baseName={type.file.baseName} path={type.file.path} meta={type.file.meta} banner={output?.banner} footer={output?.footer}>\n {mode === 'split' && imports.map((imp, index) => <File.Import key={index} root={type.file.path} path={imp.path} name={imp.name} isTypeOnly />)}\n <Type\n name={type.name}\n typedName={type.typedName}\n description={schema.value.description}\n tree={schema.tree}\n mapper={mapper}\n enumType={enumType}\n optionalType={optionalType}\n syntaxType={syntaxType}\n />\n </File>\n )\n },\n})\n","export { pluginTs, pluginTsName } from './plugin.ts'\nexport type { PluginTs } from './types.ts'\n","import path from 'node:path'\n\nimport { FileManager, type Group, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { OperationGenerator, SchemaGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { oasGenerator, typeGenerator } from './generators'\nimport type { PluginTs } from './types.ts'\n\nexport const pluginTsName = 'plugin-ts' satisfies PluginTs['name']\n\nexport const pluginTs = createPlugin<PluginTs>((options) => {\n const {\n output = { path: 'types', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumSuffix = 'enum',\n dateType = 'string',\n unknownType = 'any',\n optionalType = 'questionToken',\n syntaxType = 'type',\n transformers = {},\n oasType = false,\n mapper = {},\n generators = [typeGenerator, oasType === 'infer' ? oasGenerator : undefined].filter(Boolean),\n } = options\n\n return {\n name: pluginTsName,\n options: {\n output,\n transformers,\n dateType,\n optionalType,\n oasType,\n enumType,\n enumSuffix,\n // keep the used enumnames between SchemaGenerator and OperationGenerator per plugin(pluginKey)\n usedEnumNames: {},\n unknownType,\n syntaxType,\n group,\n override,\n mapper,\n },\n pre: [pluginOasName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.group && group) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(root, output.path, groupName({ group: options.group }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = pascalCase(name, { isFile: type === 'file' })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const schemaGenerator = new SchemaGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n include: undefined,\n override,\n mode,\n output: output.path,\n })\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n await this.addFile(...operationFiles)\n\n const barrelFiles = await this.fileManager.getBarrelFiles({\n type: output.barrelType ?? 'named',\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n },\n }\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { OasType } from '../components'\nimport type { PluginTs } from '../types.ts'\n\nexport const oasGenerator = createReactGenerator<PluginTs>({\n name: 'oas',\n Operations() {\n const {\n pluginManager,\n plugin: {\n options: { output },\n key: pluginKey,\n },\n } = useApp<PluginTs>()\n const oas = useOas()\n\n const file = pluginManager.getFile({ name: 'oas', extname: '.ts', pluginKey })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={output?.banner} footer={output?.footer}>\n <File.Import name={['Infer']} path=\"@kubb/oas\" isTypeOnly />\n\n <OasType name={'oas'} typeName={'Oas'} api={oas.api} />\n </File>\n )\n },\n})\n"]}
@@ -3,7 +3,8 @@ import { jsxs, Fragment, jsx } from '@kubb/react/jsx-runtime';
3
3
  import transformers2 from '@kubb/core/transformers';
4
4
  import { print } from '@kubb/parser-ts';
5
5
  import * as factory from '@kubb/parser-ts/factory';
6
- import { schemaKeywords, SchemaGenerator, isKeyword } from '@kubb/plugin-oas';
6
+ import { createTypeDeclaration } from '@kubb/parser-ts/factory';
7
+ import { schemaKeywords, isKeyword, SchemaGenerator } from '@kubb/plugin-oas';
7
8
 
8
9
  var __create = Object.create;
9
10
  var __defProp = Object.defineProperty;
@@ -2423,52 +2424,61 @@ function parse({ parent, current, siblings }, options) {
2423
2424
  }
2424
2425
  return void 0;
2425
2426
  }
2426
- function Type2({ name, typedName, tree, keysToOmit, optionalType, enumType, mapper, description }) {
2427
+ function Type2({ name, typedName, tree, keysToOmit, optionalType, syntaxType, enumType, mapper, description }) {
2427
2428
  const typeNodes = [];
2428
2429
  if (!tree.length) {
2429
2430
  return "";
2430
2431
  }
2431
- const isNullish = tree.some((item) => item.keyword === schemaKeywords.nullish);
2432
- const isNullable = tree.some((item) => item.keyword === schemaKeywords.nullable);
2433
- const isOptional = tree.some((item) => item.keyword === schemaKeywords.optional);
2432
+ const schema = tree.find((item) => item.keyword === schemaKeywords.schema);
2434
2433
  let type = tree.map(
2435
- (schema, _index, siblings) => parse(
2436
- { parent: void 0, current: schema, siblings },
2434
+ (schema2, _index, siblings) => parse(
2435
+ { parent: void 0, current: schema2, siblings },
2437
2436
  {
2438
2437
  name,
2439
- typeName: typedName,
2438
+ typedName,
2440
2439
  description,
2441
2440
  keysToOmit,
2442
2441
  optionalType,
2443
2442
  enumType,
2444
- mapper
2443
+ mapper,
2444
+ syntaxType
2445
2445
  }
2446
2446
  )
2447
2447
  ).filter(Boolean).at(0) || typeKeywordMapper.undefined();
2448
- if (isNullable) {
2449
- type = factory.createUnionDeclaration({
2450
- nodes: [type, factory.keywordTypeNodes.null]
2451
- });
2452
- }
2453
- if (isNullish && ["undefined", "questionTokenAndUndefined"].includes(optionalType)) {
2454
- type = factory.createUnionDeclaration({
2455
- nodes: [type, factory.keywordTypeNodes.undefined]
2456
- });
2457
- }
2458
- if (isOptional && ["undefined", "questionTokenAndUndefined"].includes(optionalType)) {
2459
- type = factory.createUnionDeclaration({
2460
- nodes: [type, factory.keywordTypeNodes.undefined]
2461
- });
2448
+ if (schema && isKeyword(schema, schemaKeywords.schema) && schema.args.type !== "object") {
2449
+ const isNullish = tree.some((item) => item.keyword === schemaKeywords.nullish);
2450
+ const isNullable = tree.some((item) => item.keyword === schemaKeywords.nullable);
2451
+ const isOptional = tree.some((item) => item.keyword === schemaKeywords.optional);
2452
+ if (isNullable) {
2453
+ type = factory.createUnionDeclaration({
2454
+ nodes: [type, factory.keywordTypeNodes.null]
2455
+ });
2456
+ }
2457
+ if (isNullish && ["undefined", "questionTokenAndUndefined"].includes(optionalType)) {
2458
+ type = factory.createUnionDeclaration({
2459
+ nodes: [type, factory.keywordTypeNodes.undefined]
2460
+ });
2461
+ }
2462
+ if (isOptional && ["undefined", "questionTokenAndUndefined"].includes(optionalType)) {
2463
+ type = factory.createUnionDeclaration({
2464
+ nodes: [type, factory.keywordTypeNodes.undefined]
2465
+ });
2466
+ }
2462
2467
  }
2463
- const node = factory.createTypeAliasDeclaration({
2464
- modifiers: [factory.modifiers.export],
2465
- name,
2466
- type: keysToOmit?.length ? factory.createOmitDeclaration({
2467
- keys: keysToOmit,
2468
- type,
2469
- nonNullable: true
2470
- }) : type
2471
- });
2468
+ const useTypeGeneration = syntaxType === "type" || [factory.syntaxKind.union].includes(type.kind) || !!keysToOmit?.length;
2469
+ typeNodes.push(
2470
+ createTypeDeclaration({
2471
+ name,
2472
+ isExportable: true,
2473
+ type: keysToOmit?.length ? factory.createOmitDeclaration({
2474
+ keys: keysToOmit,
2475
+ type,
2476
+ nonNullable: true
2477
+ }) : type,
2478
+ syntax: useTypeGeneration ? "type" : "interface",
2479
+ description: description ? transformers2.jsStringEscape(description) : void 0
2480
+ })
2481
+ );
2472
2482
  const enumSchemas = SchemaGenerator.deepSearch(tree, schemaKeywords.enum);
2473
2483
  const enums = [...new Set(enumSchemas)].map((enumSchema) => {
2474
2484
  const name2 = enumType === "asPascalConst" ? transformers2.pascalCase(enumSchema.args.name) : transformers2.camelCase(enumSchema.args.name);
@@ -2486,12 +2496,6 @@ function Type2({ name, typedName, tree, keysToOmit, optionalType, enumType, mapp
2486
2496
  typeName
2487
2497
  };
2488
2498
  });
2489
- typeNodes.push(
2490
- factory.appendJSDocToNode({
2491
- node,
2492
- comments: [description ? `@description ${transformers2.jsStringEscape(description)}` : void 0].filter(Boolean)
2493
- })
2494
- );
2495
2499
  return /* @__PURE__ */ jsxs(import_react3.Fragment, { children: [
2496
2500
  enums.map(({ name: name2, nameNode, typeName, typeNode }, index) => /* @__PURE__ */ jsxs(import_react3.Fragment, { children: [
2497
2501
  nameNode && /* @__PURE__ */ jsx(File.Source, { name: name2, isExportable: true, isIndexable: true, children: print([nameNode]) }),
@@ -2535,5 +2539,5 @@ react/cjs/react.development.js:
2535
2539
  */
2536
2540
 
2537
2541
  export { OasType, Type2 as Type, init_esm_shims };
2538
- //# sourceMappingURL=chunk-OJLL42LQ.js.map
2539
- //# sourceMappingURL=chunk-OJLL42LQ.js.map
2542
+ //# sourceMappingURL=chunk-65CJCKDZ.js.map
2543
+ //# sourceMappingURL=chunk-65CJCKDZ.js.map