@kubb/swagger-ts 2.9.1 → 2.11.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.
- package/dist/chunk-QIZFD754.js +613 -0
- package/dist/chunk-QIZFD754.js.map +1 -0
- package/dist/chunk-Y5R6DTFD.cjs +613 -0
- package/dist/chunk-Y5R6DTFD.cjs.map +1 -0
- package/dist/components.cjs +2 -4
- package/dist/components.d.cts +7 -26
- package/dist/components.d.ts +7 -26
- package/dist/components.js +3 -5
- package/dist/index.cjs +2 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +116 -4
- package/dist/index.d.ts +116 -4
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
- package/src/OperationGenerator.tsx +20 -26
- package/src/SchemaGenerator.tsx +63 -0
- package/src/components/OasType.tsx +2 -2
- package/src/components/{Query.tsx → OperationSchema.tsx} +36 -27
- package/src/components/__snapshots__/Schema/pets.ts +27 -0
- package/src/components/__snapshots__/Schema/showPetById.ts +32 -0
- package/src/components/index.ts +1 -2
- package/src/plugin.ts +20 -57
- package/src/typeParser.ts +324 -0
- package/dist/chunk-75HLNTZM.cjs +0 -823
- package/dist/chunk-75HLNTZM.cjs.map +0 -1
- package/dist/chunk-EX53MIMI.js +0 -823
- package/dist/chunk-EX53MIMI.js.map +0 -1
- package/dist/types-DHrYEdS6.d.cts +0 -117
- package/dist/types-DHrYEdS6.d.ts +0 -117
- package/src/TypeBuilder.ts +0 -61
- package/src/TypeGenerator.ts +0 -415
- package/src/components/Mutation.tsx +0 -142
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts","../src/OperationGenerator.tsx","../src/components/OasType.tsx","../src/components/OperationSchema.tsx","../src/SchemaGenerator.tsx","../src/typeParser.ts","../src/index.ts"],"names":["createRoot","Generator","Oas","Template","pluginKey","transformers","print","factory","Editor","File","usePlugin","Schema","useOas","value","item","node","jsx","SchemaGenerator","Fragment","jsxs","options"],"mappings":"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","sourcesContent":["import path from 'node:path'\n\nimport { createPlugin, FileManager, PluginManager } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginName as swaggerPluginName } from '@kubb/swagger'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { SchemaGenerator } from './SchemaGenerator.tsx'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOptions as SwaggerPluginOptions } from '@kubb/swagger'\nimport type { PluginOptions } from './types.ts'\nexport const pluginName = 'swagger-ts' satisfies PluginOptions['name']\nexport const pluginKey: PluginOptions['key'] = [pluginName] satisfies PluginOptions['key']\n\nexport const definePlugin = createPlugin<PluginOptions>((options) => {\n const {\n output = { path: 'types' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumSuffix = '',\n dateType = 'string',\n unknownType = 'any',\n optionalType = 'questionToken',\n transformers = {},\n oasType = false,\n } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginName,\n options: {\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 },\n pre: [swaggerPluginName],\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 === 'file') {\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?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), 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 writeFile(source, writePath) {\n if (!writePath.endsWith('.ts') || !source) {\n return\n }\n\n return this.fileManager.write(source, writePath, { sanity: false })\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [swaggerPluginName])\n\n const oas = await swaggerPlugin.api.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(\n this.plugin.options,\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.api.contentType,\n include: undefined,\n mode,\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build()\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(\n this.plugin.options,\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.api.contentType,\n exclude,\n include,\n override,\n mode,\n },\n )\n\n const operationFiles = await operationGenerator.build()\n await this.addFile(...operationFiles)\n },\n async buildEnd() {\n if (this.config.output.write === false) {\n return\n }\n\n const root = path.resolve(this.config.root, this.config.output.path)\n\n await this.fileManager.addIndexes({\n root,\n output,\n meta: { pluginKey: this.plugin.key },\n })\n },\n }\n})\n","import { createRoot } from '@kubb/react'\nimport { OperationGenerator as Generator } from '@kubb/swagger'\nimport { Oas } from '@kubb/swagger/components'\n\nimport { OasType } from './components/OasType.tsx'\nimport { OperationSchema } from './components/OperationSchema.tsx'\n\nimport type { AppContextProps } from '@kubb/react'\nimport type { OperationMethodResult } from '@kubb/swagger'\nimport type { Operation } from '@kubb/swagger/oas'\nimport type { FileMeta, PluginOptions } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginOptions['resolvedOptions'], PluginOptions> {\n async all(operations: Operation[]): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n\n root.render(\n <Oas oas={oas} operations={operations} getOperationSchemas={(...props) => this.getSchemas(...props)}>\n {plugin.options.oasType && <OasType.File name=\"oas\" typeName=\"Oas\" />}\n </Oas>,\n { meta: { pluginManager, plugin } },\n )\n\n return root.files\n }\n\n async operation(\n operation: Operation,\n options: PluginOptions['resolvedOptions'],\n ): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n root.render(\n <Oas oas={oas} operations={[operation]} getOperationSchemas={(...props) => this.getSchemas(...props)}>\n <Oas.Operation operation={operation}>\n <OperationSchema.File mode={mode} />\n </Oas.Operation>\n </Oas>,\n { meta: { pluginManager, plugin: { ...plugin, options } } },\n )\n\n return root.files\n }\n\n async get(): OperationMethodResult<FileMeta> {\n return null\n }\n\n async post(): OperationMethodResult<FileMeta> {\n return null\n }\n\n async put(): OperationMethodResult<FileMeta> {\n return null\n }\n async patch(): OperationMethodResult<FileMeta> {\n return null\n }\n async delete(): OperationMethodResult<FileMeta> {\n return null\n }\n}\n","import { Editor, File, Type, usePlugin } from '@kubb/react'\nimport { useGetFile } from '@kubb/react'\nimport { useOas } from '@kubb/swagger/hooks'\n\nimport type { OasTypes } from '@kubb/swagger/oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginOptions } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n typeName: string\n api: OasTypes.OASDocument\n}\n\nfunction Template({\n name,\n typeName,\n api,\n}: TemplateProps): ReactNode {\n return (\n <>\n {`export const ${name} = ${JSON.stringify(api, undefined, 2)} as const`}\n <br />\n <Type name={typeName} export>\n {`Infer<typeof ${name}>`}\n </Type>\n </>\n )\n}\n\nconst defaultTemplates = { default: Template } as const\n\ntype Props = {\n name: string\n typeName: string\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<React.ComponentProps<typeof Template>>\n}\n\nexport function OasType({\n name,\n typeName,\n Template = defaultTemplates.default,\n}: Props): ReactNode {\n const oas = useOas()\n\n return <Template name={name} typeName={typeName} api={oas.api} />\n}\n\ntype FileProps = {\n name: string\n typeName: string\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: typeof defaultTemplates\n}\n\nOasType.File = function({ name, typeName, templates = defaultTemplates }: FileProps): ReactNode {\n const { key: pluginKey } = usePlugin<PluginOptions>()\n const file = useGetFile({ name, extName: '.ts', pluginKey })\n\n const Template = templates.default\n\n return (\n <Editor language=\"typescript\">\n <File<FileMeta>\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n >\n <File.Import name={['Infer']} path=\"@kubb/swagger-ts/oas\" isTypeOnly />\n <File.Source>\n <OasType Template={Template} name={name} typeName={typeName} />\n </File.Source>\n </File>\n </Editor>\n )\n}\n\nOasType.templates = defaultTemplates\n","/* eslint-disable no-empty-pattern */\n/* eslint-disable @typescript-eslint/ban-types */\nimport transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport * as factory from '@kubb/parser/factory'\nimport { Editor, File, usePlugin, usePluginManager } from '@kubb/react'\nimport { Oas, Schema } from '@kubb/swagger/components'\nimport { useGetOperationFile, useOas, useOperation, useOperationName, useOperationSchemas } from '@kubb/swagger/hooks'\n\nimport { SchemaGenerator } from '../SchemaGenerator.tsx'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\nimport type { OperationSchema as OperationSchemaType } from '@kubb/swagger'\nimport type { OperationSchemas } from '@kubb/swagger'\nimport type { Operation } from '@kubb/swagger/oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginOptions } from '../types.ts'\n\ntype Props = {}\n\nfunction printCombinedSchema(name: string, operation: Operation, schemas: OperationSchemas): string {\n const properties: Record<string, ts.TypeNode> = {\n 'response': factory.createTypeReferenceNode(\n factory.createIdentifier(schemas.response.name),\n undefined,\n ),\n }\n\n if (schemas.request) {\n properties['request'] = factory.createTypeReferenceNode(\n factory.createIdentifier(schemas.request.name),\n undefined,\n )\n }\n\n if (schemas.pathParams) {\n properties['pathParams'] = factory.createTypeReferenceNode(\n factory.createIdentifier(schemas.pathParams.name),\n undefined,\n )\n }\n\n if (schemas.queryParams) {\n properties['queryParams'] = factory.createTypeReferenceNode(\n factory.createIdentifier(schemas.queryParams.name),\n undefined,\n )\n }\n\n if (schemas.headerParams) {\n properties['headerParams'] = factory.createTypeReferenceNode(\n factory.createIdentifier(schemas.headerParams.name),\n undefined,\n )\n }\n\n if (schemas.errors) {\n properties['errors'] = factory.createUnionDeclaration({\n nodes: schemas.errors.map(error => {\n return factory.createTypeReferenceNode(\n factory.createIdentifier(error.name),\n undefined,\n )\n }),\n })!\n }\n\n const namespaceNode = factory.createTypeAliasDeclaration({\n name: operation.method === 'get' ? `${name}Query` : `${name}Mutation`,\n type: factory.createTypeLiteralNode(\n Object.keys(properties).map(key => {\n const type = properties[key]\n if (!type) {\n return undefined\n }\n\n return factory.createPropertySignature(\n {\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 function OperationSchema({}: Props): ReactNode {\n return (\n <>\n </>\n )\n}\n\ntype FileProps = {\n mode: KubbFile.Mode | undefined\n}\n\nOperationSchema.File = function({ mode = 'directory' }: FileProps): ReactNode {\n const plugin = usePlugin<PluginOptions>()\n\n const pluginManager = usePluginManager()\n const oas = useOas()\n const schemas = useOperationSchemas()\n const file = useGetOperationFile()\n const factoryName = useOperationName({ type: 'type' })\n const operation = useOperation()\n\n const generator = new SchemaGenerator(plugin.options, { oas, plugin, pluginManager })\n\n const items = [\n schemas.pathParams,\n schemas.queryParams,\n schemas.headerParams,\n schemas.statusCodes,\n schemas.request,\n schemas.response,\n ].flat().filter(Boolean)\n\n const mapItem = ({ name, schema: object, ...options }: OperationSchemaType, i: number) => {\n return (\n <Oas.Schema key={i} generator={generator} name={name} object={object}>\n {mode === 'directory'\n && <Schema.Imports isTypeOnly />}\n <File.Source>\n <Schema.Source options={options} />\n </File.Source>\n </Oas.Schema>\n )\n }\n\n return (\n <Editor language=\"typescript\">\n <File<FileMeta>\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n >\n {items.map(mapItem)}\n\n <File.Source>\n {printCombinedSchema(factoryName, operation, schemas)}\n </File.Source>\n </File>\n </Editor>\n )\n}\n","import { createRoot } from '@kubb/react'\nimport { SchemaGenerator as Generator } from '@kubb/swagger'\nimport { Oas, Schema } from '@kubb/swagger/components'\nimport { pluginKey as swaggerTypeScriptPluginKey } from '@kubb/swagger-ts'\n\nimport { pluginKey } from './plugin.ts'\nimport { typeParser } from './typeParser.ts'\n\nimport type { AppContextProps } from '@kubb/react'\nimport type { Schema as SchemaType, SchemaGeneratorBuildOptions, SchemaMethodResult } from '@kubb/swagger'\nimport type { SchemaObject } from '@kubb/swagger/oas'\nimport type { FileMeta, PluginOptions } from './types.ts'\n\nexport class SchemaGenerator extends Generator<PluginOptions['resolvedOptions'], PluginOptions> {\n async schema(name: string, object: SchemaObject): SchemaMethodResult<FileMeta> {\n const { oas, pluginManager, mode, plugin, output } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n\n root.render(\n <Oas oas={oas}>\n <Oas.Schema generator={this} name={name} object={object}>\n <Schema.File isTypeOnly output={output} mode={mode} />\n </Oas.Schema>\n </Oas>,\n { meta: { pluginManager, plugin } },\n )\n\n return root.files\n }\n // TODO convert to a react component called `Schema.Parser` with props parser as part of the SchemaContext\n getSource(name: string, schemas: SchemaType[], {\n keysToOmit,\n description,\n }: SchemaGeneratorBuildOptions = {}): string[] {\n const texts: string[] = []\n\n const resolvedName = this.context.pluginManager.resolveName({ name, pluginKey, type: 'function' })\n const resvoledTypeName = this.context.pluginManager.resolveName({ name, pluginKey: swaggerTypeScriptPluginKey, type: 'type' })\n\n const typeOutput = typeParser(schemas, {\n name: resolvedName,\n typeName: resvoledTypeName,\n description,\n enumType: this.options.enumType || 'asConst',\n optionalType: this.options.optionalType,\n keysToOmit,\n })\n\n texts.push(typeOutput)\n\n return texts\n }\n /**\n * @deprecated only used for testing\n */\n\n buildSource(name: string, schema: SchemaObject, options: SchemaGeneratorBuildOptions = {}): string[] {\n const schemas = this.buildSchemas(schema, name)\n\n return this.getSource(name, schemas, options)\n }\n}\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport * as factory from '@kubb/parser/factory'\nimport { isKeyword, SchemaGenerator, schemaKeywords } from '@kubb/swagger'\n\nimport type { ts } from '@kubb/parser'\nimport type { Schema, SchemaKeywordMapper, SchemaMapper } from '@kubb/swagger'\n\nexport const typeKeywordMapper = {\n any: () => factory.keywordTypeNodes.any,\n unknown: () => factory.keywordTypeNodes.unknown,\n number: () => factory.keywordTypeNodes.number,\n integer: () => factory.keywordTypeNodes.number,\n object: (nodes?: ts.TypeElement[]) => {\n if (!nodes) {\n return factory.keywordTypeNodes.object\n }\n\n return factory.createTypeLiteralNode(nodes)\n },\n lazy: undefined,\n string: () => factory.keywordTypeNodes.string,\n boolean: () => factory.keywordTypeNodes.boolean,\n undefined: () => factory.keywordTypeNodes.undefined,\n nullable: undefined,\n null: () => factory.keywordTypeNodes.null,\n nullish: undefined,\n array: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createArrayDeclaration({ nodes })\n },\n tuple: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createTupleTypeNode(nodes)\n },\n enum: (name?: string) => {\n if (!name) {\n return undefined\n }\n\n return factory.createTypeReferenceNode(name, undefined)\n },\n union: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createUnionDeclaration({\n withParentheses: true,\n nodes,\n })\n },\n const: (name?: string | number, format?: 'string' | 'number') => {\n if (!name) {\n return undefined\n }\n\n if (format === 'number') {\n return factory.createLiteralTypeNode(factory.createNumericLiteral(name))\n }\n\n return factory.createLiteralTypeNode(factory.createStringLiteral(name.toString()))\n },\n datetime: () => factory.keywordTypeNodes.string,\n date: () => factory.createTypeReferenceNode(factory.createIdentifier('Date')),\n uuid: undefined,\n url: undefined,\n strict: undefined,\n default: undefined,\n and: (nodes?: ts.TypeNode[]) => {\n if (!nodes) {\n return undefined\n }\n\n return factory.createIntersectionDeclaration({\n withParentheses: true,\n nodes,\n })\n },\n describe: undefined,\n min: undefined,\n max: undefined,\n optional: undefined,\n matches: undefined,\n email: undefined,\n firstName: undefined,\n lastName: undefined,\n password: undefined,\n phone: undefined,\n readOnly: undefined,\n ref: (propertyName?: string) => {\n if (!propertyName) {\n return undefined\n }\n\n return factory.createTypeReferenceNode(propertyName, undefined)\n },\n blob: () => factory.createTypeReferenceNode('Blob', []),\n deprecated: undefined,\n example: undefined,\n type: undefined,\n format: undefined,\n catchall: undefined,\n} satisfies SchemaMapper<(ctx?: any) => ts.Node | null | undefined>\n\ntype ParserOptions = {\n name: string\n typeName?: string\n description?: string\n /**\n * @default `'questionToken'`\n */\n optionalType: 'questionToken' | 'undefined' | 'questionTokenAndUndefined'\n /**\n * @default `'asConst'`\n */\n enumType: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal'\n keysToOmit?: string[]\n mapper?: typeof typeKeywordMapper\n}\n\nexport function parseTypeMeta(item: Schema, options: ParserOptions): ts.Node | null | undefined {\n const mapper = options.mapper || typeKeywordMapper\n const value = mapper[item.keyword as keyof typeof mapper]\n\n if (!value) {\n return undefined\n }\n\n if (isKeyword(item, schemaKeywords.union)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['union']\n return value(item.args.map(orItem => parseTypeMeta(orItem, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(item, schemaKeywords.and)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['and']\n return value(item.args.map(orItem => parseTypeMeta(orItem, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(item, schemaKeywords.array)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['array']\n return value(item.args.items.map(orItem => parseTypeMeta(orItem, options)).filter(Boolean) as ts.TypeNode[])\n }\n\n if (isKeyword(item, schemaKeywords.enum)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['enum']\n return value(item.args.typeName)\n }\n\n if (isKeyword(item, schemaKeywords.ref)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['ref']\n return value(item.args.name)\n }\n\n if (isKeyword(item, schemaKeywords.blob)) {\n return value()\n }\n\n if (isKeyword(item, schemaKeywords.tuple)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['tuple']\n return value(\n item.args.map(tupleItem => parseTypeMeta(tupleItem, options)).filter(Boolean) as ts.TypeNode[],\n )\n }\n\n if (isKeyword(item, schemaKeywords.const)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['const']\n\n return value(item.args.name, item.args.format)\n }\n\n if (isKeyword(item, schemaKeywords.object)) {\n const value = mapper[item.keyword as keyof typeof mapper] as typeof typeKeywordMapper['object']\n\n const properties = Object.entries(item.args?.properties || {})\n .filter((item) => {\n const schemas = item[1]\n return schemas && typeof schemas.map === 'function'\n })\n .map((item) => {\n const name = item[0]\n const schemas = item[1]\n\n const isNullish = schemas.some(item => item.keyword === schemaKeywords.nullish)\n const isNullable = schemas.some(item => item.keyword === schemaKeywords.nullable)\n const isOptional = schemas.some(item => item.keyword === schemaKeywords.optional)\n const isReadonly = schemas.some(item => item.keyword === schemaKeywords.readOnly)\n const describeSchema = schemas.find(item => item.keyword === schemaKeywords.describe) as SchemaKeywordMapper['describe'] | undefined\n const deprecatedSchema = schemas.find(item => item.keyword === schemaKeywords.deprecated) as SchemaKeywordMapper['deprecated'] | undefined\n const defaultSchema = schemas.find(item => item.keyword === schemaKeywords.default) as SchemaKeywordMapper['default'] | undefined\n const exampleSchema = schemas.find(item => item.keyword === schemaKeywords.example) as SchemaKeywordMapper['example'] | undefined\n const typeSchema = schemas.find(item => item.keyword === schemaKeywords.type) as SchemaKeywordMapper['type'] | undefined\n const formatSchema = schemas.find(item => item.keyword === schemaKeywords.format) as SchemaKeywordMapper['format'] | undefined\n\n let type = schemas\n .map((item) => parseTypeMeta(item, options))\n .filter(Boolean)[0] as ts.TypeNode\n\n if (isNullable) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.null] }) as ts.TypeNode\n }\n\n if (isNullish && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.undefined] }) as ts.TypeNode\n }\n\n if (isOptional && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.undefined] }) as ts.TypeNode\n }\n\n const propertySignature = factory.createPropertySignature({\n questionToken: isOptional && ['questionToken', 'questionTokenAndUndefined'].includes(options.optionalType as string),\n name,\n type,\n readOnly: isReadonly,\n })\n\n return factory.appendJSDocToNode({\n node: propertySignature,\n comments: [\n describeSchema ? `@description ${transformers.jsStringEscape(describeSchema.args)}` : undefined,\n deprecatedSchema ? `@deprecated` : undefined,\n defaultSchema\n ? `@default ${defaultSchema.args}`\n : undefined,\n exampleSchema ? `@example ${exampleSchema.args}` : undefined,\n typeSchema\n ? `@type ${typeSchema.args}${!isOptional ? '' : ' | undefined'} ${formatSchema?.args || ''}`\n : undefined,\n ].filter(Boolean),\n })\n })\n\n const additionalProperties = item.args?.additionalProperties?.length\n ? factory.createIndexSignature(item.args.additionalProperties.map(schema => parseTypeMeta(schema, options)).filter(Boolean).at(0) as ts.TypeNode)\n : undefined\n\n return value([...properties, additionalProperties].filter(Boolean))\n }\n\n if (item.keyword in mapper) {\n return value()\n }\n\n return undefined\n}\n\nexport function typeParser(\n schemas: Schema[],\n options: ParserOptions,\n): string {\n const nodes: ts.Node[] = []\n const extraNodes: ts.Node[] = []\n\n if (!schemas.length) {\n return ''\n }\n\n const isNullish = schemas.some(item => item.keyword === schemaKeywords.nullish)\n const isNullable = schemas.some(item => item.keyword === schemaKeywords.nullable)\n const isOptional = schemas.some(item => item.keyword === schemaKeywords.optional)\n\n let type = schemas.map((schema) => parseTypeMeta(schema, options)).filter(Boolean).at(0) as ts.TypeNode\n || typeKeywordMapper.undefined()\n\n if (isNullable) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.null] }) as ts.TypeNode\n }\n\n if (isNullish && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.undefined] }) as ts.TypeNode\n }\n\n if (isOptional && ['undefined', 'questionTokenAndUndefined'].includes(options.optionalType as string)) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.undefined] }) as ts.TypeNode\n }\n\n const node = factory.createTypeAliasDeclaration({\n modifiers: [factory.modifiers.export],\n name: options.name,\n type: options.keysToOmit?.length ? factory.createOmitDeclaration({ keys: options.keysToOmit, type, nonNullable: true }) : type,\n })\n\n const enumSchemas = SchemaGenerator.deepSearch(schemas, schemaKeywords.enum)\n if (enumSchemas) {\n enumSchemas.forEach(enumSchema => {\n extraNodes.push(...factory.createEnumDeclaration({\n name: transformers.camelCase(enumSchema.args.name),\n typeName: enumSchema.args.typeName,\n enums: enumSchema.args.items.map(item => item.value === undefined ? undefined : [transformers.trimQuotes(item.name?.toString()), item.value]).filter(\n Boolean,\n ) as unknown as [\n string,\n string,\n ][],\n type: options.enumType,\n }))\n })\n }\n\n nodes.push(\n factory.appendJSDocToNode({\n node,\n comments: [\n options.description ? `@description ${transformers.jsStringEscape(options.description)}` : undefined,\n ].filter(Boolean),\n }),\n )\n\n const filterdNodes = nodes.filter(\n (node: ts.Node) =>\n !extraNodes.some(\n (extraNode: ts.Node) => (extraNode as ts.TypeAliasDeclaration)?.name?.escapedText === (node as ts.TypeAliasDeclaration)?.name?.escapedText,\n ),\n )\n\n return print([...extraNodes, ...filterdNodes])\n}\n","import { definePlugin } from './plugin.ts'\n\nexport { definePlugin, pluginKey, pluginName } from './plugin.ts'\nexport type * from './types.ts'\n\n/**\n * @deprecated Use `import { definePlugin } from '@kubb/swagger-ts'`\n */\nconst definePluginDefault = definePlugin\n\nexport default definePluginDefault\n"]}
|
package/dist/components.cjs
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
2
2
|
|
3
3
|
|
4
|
+
var _chunkY5R6DTFDcjs = require('./chunk-Y5R6DTFD.cjs');
|
4
5
|
|
5
|
-
var _chunk75HLNTZMcjs = require('./chunk-75HLNTZM.cjs');
|
6
6
|
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
exports.Mutation = _chunk75HLNTZMcjs.Mutation; exports.OasType = _chunk75HLNTZMcjs.OasType; exports.Query = _chunk75HLNTZMcjs.Query;
|
8
|
+
exports.OasType = _chunkY5R6DTFDcjs.OasType; exports.OperationSchema = _chunkY5R6DTFDcjs.OperationSchema;
|
11
9
|
//# sourceMappingURL=components.cjs.map
|
package/dist/components.d.cts
CHANGED
@@ -1,23 +1,6 @@
|
|
1
|
-
import { OasBuilder } from '@kubb/swagger';
|
2
|
-
import { KubbFile } from '@kubb/core';
|
3
|
-
import { P as PluginOptions } from './types-DHrYEdS6.cjs';
|
4
|
-
import { ReactNode } from 'react';
|
5
1
|
import { OasTypes } from '@kubb/swagger/oas';
|
6
|
-
|
7
|
-
|
8
|
-
build(name?: string): Required<Pick<KubbFile.File, 'imports' | 'source'>>;
|
9
|
-
}
|
10
|
-
|
11
|
-
type Props$2 = {
|
12
|
-
builder: TypeBuilder;
|
13
|
-
};
|
14
|
-
declare function Mutation({ builder, }: Props$2): ReactNode;
|
15
|
-
declare namespace Mutation {
|
16
|
-
var File: ({ mode }: FileProps$2) => ReactNode;
|
17
|
-
}
|
18
|
-
type FileProps$2 = {
|
19
|
-
mode: KubbFile.Mode;
|
20
|
-
};
|
2
|
+
import { ReactNode } from 'react';
|
3
|
+
import { KubbFile } from '@kubb/core';
|
21
4
|
|
22
5
|
type TemplateProps = {
|
23
6
|
/**
|
@@ -55,15 +38,13 @@ type FileProps$1 = {
|
|
55
38
|
templates?: typeof defaultTemplates;
|
56
39
|
};
|
57
40
|
|
58
|
-
type Props = {
|
59
|
-
|
60
|
-
|
61
|
-
declare function Query({ builder, }: Props): ReactNode;
|
62
|
-
declare namespace Query {
|
41
|
+
type Props = {};
|
42
|
+
declare function OperationSchema({}: Props): ReactNode;
|
43
|
+
declare namespace OperationSchema {
|
63
44
|
var File: ({ mode }: FileProps) => ReactNode;
|
64
45
|
}
|
65
46
|
type FileProps = {
|
66
|
-
mode: KubbFile.Mode;
|
47
|
+
mode: KubbFile.Mode | undefined;
|
67
48
|
};
|
68
49
|
|
69
|
-
export {
|
50
|
+
export { OasType, OperationSchema };
|
package/dist/components.d.ts
CHANGED
@@ -1,23 +1,6 @@
|
|
1
|
-
import { OasBuilder } from '@kubb/swagger';
|
2
|
-
import { KubbFile } from '@kubb/core';
|
3
|
-
import { P as PluginOptions } from './types-DHrYEdS6.js';
|
4
|
-
import { ReactNode } from 'react';
|
5
1
|
import { OasTypes } from '@kubb/swagger/oas';
|
6
|
-
|
7
|
-
|
8
|
-
build(name?: string): Required<Pick<KubbFile.File, 'imports' | 'source'>>;
|
9
|
-
}
|
10
|
-
|
11
|
-
type Props$2 = {
|
12
|
-
builder: TypeBuilder;
|
13
|
-
};
|
14
|
-
declare function Mutation({ builder, }: Props$2): ReactNode;
|
15
|
-
declare namespace Mutation {
|
16
|
-
var File: ({ mode }: FileProps$2) => ReactNode;
|
17
|
-
}
|
18
|
-
type FileProps$2 = {
|
19
|
-
mode: KubbFile.Mode;
|
20
|
-
};
|
2
|
+
import { ReactNode } from 'react';
|
3
|
+
import { KubbFile } from '@kubb/core';
|
21
4
|
|
22
5
|
type TemplateProps = {
|
23
6
|
/**
|
@@ -55,15 +38,13 @@ type FileProps$1 = {
|
|
55
38
|
templates?: typeof defaultTemplates;
|
56
39
|
};
|
57
40
|
|
58
|
-
type Props = {
|
59
|
-
|
60
|
-
|
61
|
-
declare function Query({ builder, }: Props): ReactNode;
|
62
|
-
declare namespace Query {
|
41
|
+
type Props = {};
|
42
|
+
declare function OperationSchema({}: Props): ReactNode;
|
43
|
+
declare namespace OperationSchema {
|
63
44
|
var File: ({ mode }: FileProps) => ReactNode;
|
64
45
|
}
|
65
46
|
type FileProps = {
|
66
|
-
mode: KubbFile.Mode;
|
47
|
+
mode: KubbFile.Mode | undefined;
|
67
48
|
};
|
68
49
|
|
69
|
-
export {
|
50
|
+
export { OasType, OperationSchema };
|
package/dist/components.js
CHANGED
package/dist/index.cjs
CHANGED
@@ -2,15 +2,12 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
var _chunk75HLNTZMcjs = require('./chunk-75HLNTZM.cjs');
|
6
5
|
|
7
|
-
|
8
|
-
var definePluginDefault = _chunk75HLNTZMcjs.definePlugin;
|
9
|
-
var src_default = definePluginDefault;
|
6
|
+
var _chunkY5R6DTFDcjs = require('./chunk-Y5R6DTFD.cjs');
|
10
7
|
|
11
8
|
|
12
9
|
|
13
10
|
|
14
11
|
|
15
|
-
exports.default = src_default; exports.definePlugin =
|
12
|
+
exports.default = _chunkY5R6DTFDcjs.src_default; exports.definePlugin = _chunkY5R6DTFDcjs.definePlugin; exports.pluginKey = _chunkY5R6DTFDcjs.pluginKey; exports.pluginName = _chunkY5R6DTFDcjs.pluginName;
|
16
13
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/index.d.cts
CHANGED
@@ -1,14 +1,126 @@
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
2
|
-
import {
|
3
|
-
|
2
|
+
import { KubbFile, ResolveNameParams, Plugin, PluginFactoryOptions } from '@kubb/core';
|
3
|
+
import { Exclude, Include, Override, ResolvePathOptions } from '@kubb/swagger';
|
4
4
|
export { i as Oas } from './index-BKDH3fXc.cjs';
|
5
|
-
import '@kubb/swagger';
|
6
5
|
import 'hotscript';
|
7
6
|
import 'ts-toolbelt';
|
8
7
|
import '@kubb/swagger/oas';
|
9
8
|
import 'json-schema-to-ts';
|
10
9
|
import '@kubb/types';
|
11
10
|
|
11
|
+
type Options = {
|
12
|
+
output?: {
|
13
|
+
/**
|
14
|
+
* Relative path to save the TypeScript types.
|
15
|
+
* When output is a file it will save all models inside that file else it will create a file per schema item.
|
16
|
+
* @default 'types'
|
17
|
+
*/
|
18
|
+
path: string;
|
19
|
+
/**
|
20
|
+
* Name to be used for the `export * as {{exportAs}} from './'`
|
21
|
+
*/
|
22
|
+
exportAs?: string;
|
23
|
+
/**
|
24
|
+
* Add an extension to the generated imports and exports, default it will not use an extension
|
25
|
+
*/
|
26
|
+
extName?: KubbFile.Extname;
|
27
|
+
/**
|
28
|
+
* Define what needs to exported, here you can also disable the export of barrel files
|
29
|
+
* @default `'barrel'`
|
30
|
+
*/
|
31
|
+
exportType?: 'barrel' | 'barrelNamed' | false;
|
32
|
+
};
|
33
|
+
/**
|
34
|
+
* Group the TypeScript types based on the provided name.
|
35
|
+
*/
|
36
|
+
group?: {
|
37
|
+
/**
|
38
|
+
* Tag will group based on the operation tag inside the Swagger file.
|
39
|
+
*/
|
40
|
+
type: 'tag';
|
41
|
+
/**
|
42
|
+
* Relative path to save the grouped TypeScript Types.
|
43
|
+
*
|
44
|
+
* `{{tag}}` will be replaced by the current tagName.
|
45
|
+
* @example `${output}/{{tag}}Controller` => `models/PetController`
|
46
|
+
* @default `${output}/{{tag}}Controller`
|
47
|
+
*/
|
48
|
+
output?: string;
|
49
|
+
};
|
50
|
+
/**
|
51
|
+
* Array containing exclude parameters to exclude/skip tags/operations/methods/paths.
|
52
|
+
*/
|
53
|
+
exclude?: Array<Exclude>;
|
54
|
+
/**
|
55
|
+
* Array containing include parameters to include tags/operations/methods/paths.
|
56
|
+
*/
|
57
|
+
include?: Array<Include>;
|
58
|
+
/**
|
59
|
+
* Array containing override parameters to override `options` based on tags/operations/methods/paths.
|
60
|
+
*/
|
61
|
+
override?: Array<Override<Options>>;
|
62
|
+
/**
|
63
|
+
* Choose to use `enum` or `as const` for enums
|
64
|
+
* @default 'asConst'
|
65
|
+
*/
|
66
|
+
enumType?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal';
|
67
|
+
/**
|
68
|
+
* Set a suffix for the generated enums.
|
69
|
+
* @default ''
|
70
|
+
* Default will be `'enum'` in version 3 of Kubb
|
71
|
+
*/
|
72
|
+
enumSuffix?: string;
|
73
|
+
/**
|
74
|
+
* Choose to use `date` or `datetime` as JavaScript `Date` instead of `string`.
|
75
|
+
* @default 'string'
|
76
|
+
*/
|
77
|
+
dateType?: 'string' | 'date';
|
78
|
+
/**
|
79
|
+
* Which type to use when the Swagger/OpenAPI file is not providing more information.
|
80
|
+
* @default 'any'
|
81
|
+
*/
|
82
|
+
unknownType?: 'any' | 'unknown';
|
83
|
+
/**
|
84
|
+
* Choose what to use as mode for an optional value.
|
85
|
+
* @examples 'questionToken': type?: string
|
86
|
+
* @examples 'undefined': type: string | undefined
|
87
|
+
* @examples 'questionTokenAndUndefined': type?: string | undefined
|
88
|
+
* @default 'questionToken'
|
89
|
+
*/
|
90
|
+
optionalType?: 'questionToken' | 'undefined' | 'questionTokenAndUndefined';
|
91
|
+
transformers?: {
|
92
|
+
/**
|
93
|
+
* Customize the names based on the type that is provided by the plugin.
|
94
|
+
*/
|
95
|
+
name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string;
|
96
|
+
};
|
97
|
+
/**
|
98
|
+
* Export an Oas object as Oas type with `import type { Infer } from '@kubb/swagger-ts/oas'`
|
99
|
+
*/
|
100
|
+
oasType?: 'infer' | false;
|
101
|
+
};
|
102
|
+
type ResolvedOptions = {
|
103
|
+
enumType: NonNullable<Options['enumType']>;
|
104
|
+
enumSuffix: NonNullable<Options['enumSuffix']>;
|
105
|
+
dateType: NonNullable<Options['dateType']>;
|
106
|
+
unknownType: NonNullable<Options['unknownType']>;
|
107
|
+
optionalType: NonNullable<Options['optionalType']>;
|
108
|
+
transformers: NonNullable<Options['transformers']>;
|
109
|
+
oasType: NonNullable<Options['oasType']>;
|
110
|
+
usedEnumNames: Record<string, number>;
|
111
|
+
};
|
112
|
+
type FileMeta = {
|
113
|
+
pluginKey?: Plugin['key'];
|
114
|
+
name?: string;
|
115
|
+
tag?: string;
|
116
|
+
};
|
117
|
+
type PluginOptions = PluginFactoryOptions<'swagger-ts', Options, ResolvedOptions, never, ResolvePathOptions>;
|
118
|
+
declare module '@kubb/core' {
|
119
|
+
interface _Register {
|
120
|
+
['@kubb/swagger-ts']: PluginOptions;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
12
124
|
declare const pluginName = "swagger-ts";
|
13
125
|
declare const pluginKey: PluginOptions['key'];
|
14
126
|
declare const definePlugin: (options: Options) => _kubb_core.UserPluginWithLifeCycle<PluginOptions>;
|
@@ -18,4 +130,4 @@ declare const definePlugin: (options: Options) => _kubb_core.UserPluginWithLifeC
|
|
18
130
|
*/
|
19
131
|
declare const definePluginDefault: (options: Options) => _kubb_core.UserPluginWithLifeCycle<PluginOptions>;
|
20
132
|
|
21
|
-
export { Options, PluginOptions, definePluginDefault as default, definePlugin, pluginKey, pluginName };
|
133
|
+
export { type FileMeta, type Options, type PluginOptions, definePluginDefault as default, definePlugin, pluginKey, pluginName };
|
package/dist/index.d.ts
CHANGED
@@ -1,14 +1,126 @@
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
2
|
-
import {
|
3
|
-
|
2
|
+
import { KubbFile, ResolveNameParams, Plugin, PluginFactoryOptions } from '@kubb/core';
|
3
|
+
import { Exclude, Include, Override, ResolvePathOptions } from '@kubb/swagger';
|
4
4
|
export { i as Oas } from './index-BKDH3fXc.js';
|
5
|
-
import '@kubb/swagger';
|
6
5
|
import 'hotscript';
|
7
6
|
import 'ts-toolbelt';
|
8
7
|
import '@kubb/swagger/oas';
|
9
8
|
import 'json-schema-to-ts';
|
10
9
|
import '@kubb/types';
|
11
10
|
|
11
|
+
type Options = {
|
12
|
+
output?: {
|
13
|
+
/**
|
14
|
+
* Relative path to save the TypeScript types.
|
15
|
+
* When output is a file it will save all models inside that file else it will create a file per schema item.
|
16
|
+
* @default 'types'
|
17
|
+
*/
|
18
|
+
path: string;
|
19
|
+
/**
|
20
|
+
* Name to be used for the `export * as {{exportAs}} from './'`
|
21
|
+
*/
|
22
|
+
exportAs?: string;
|
23
|
+
/**
|
24
|
+
* Add an extension to the generated imports and exports, default it will not use an extension
|
25
|
+
*/
|
26
|
+
extName?: KubbFile.Extname;
|
27
|
+
/**
|
28
|
+
* Define what needs to exported, here you can also disable the export of barrel files
|
29
|
+
* @default `'barrel'`
|
30
|
+
*/
|
31
|
+
exportType?: 'barrel' | 'barrelNamed' | false;
|
32
|
+
};
|
33
|
+
/**
|
34
|
+
* Group the TypeScript types based on the provided name.
|
35
|
+
*/
|
36
|
+
group?: {
|
37
|
+
/**
|
38
|
+
* Tag will group based on the operation tag inside the Swagger file.
|
39
|
+
*/
|
40
|
+
type: 'tag';
|
41
|
+
/**
|
42
|
+
* Relative path to save the grouped TypeScript Types.
|
43
|
+
*
|
44
|
+
* `{{tag}}` will be replaced by the current tagName.
|
45
|
+
* @example `${output}/{{tag}}Controller` => `models/PetController`
|
46
|
+
* @default `${output}/{{tag}}Controller`
|
47
|
+
*/
|
48
|
+
output?: string;
|
49
|
+
};
|
50
|
+
/**
|
51
|
+
* Array containing exclude parameters to exclude/skip tags/operations/methods/paths.
|
52
|
+
*/
|
53
|
+
exclude?: Array<Exclude>;
|
54
|
+
/**
|
55
|
+
* Array containing include parameters to include tags/operations/methods/paths.
|
56
|
+
*/
|
57
|
+
include?: Array<Include>;
|
58
|
+
/**
|
59
|
+
* Array containing override parameters to override `options` based on tags/operations/methods/paths.
|
60
|
+
*/
|
61
|
+
override?: Array<Override<Options>>;
|
62
|
+
/**
|
63
|
+
* Choose to use `enum` or `as const` for enums
|
64
|
+
* @default 'asConst'
|
65
|
+
*/
|
66
|
+
enumType?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal';
|
67
|
+
/**
|
68
|
+
* Set a suffix for the generated enums.
|
69
|
+
* @default ''
|
70
|
+
* Default will be `'enum'` in version 3 of Kubb
|
71
|
+
*/
|
72
|
+
enumSuffix?: string;
|
73
|
+
/**
|
74
|
+
* Choose to use `date` or `datetime` as JavaScript `Date` instead of `string`.
|
75
|
+
* @default 'string'
|
76
|
+
*/
|
77
|
+
dateType?: 'string' | 'date';
|
78
|
+
/**
|
79
|
+
* Which type to use when the Swagger/OpenAPI file is not providing more information.
|
80
|
+
* @default 'any'
|
81
|
+
*/
|
82
|
+
unknownType?: 'any' | 'unknown';
|
83
|
+
/**
|
84
|
+
* Choose what to use as mode for an optional value.
|
85
|
+
* @examples 'questionToken': type?: string
|
86
|
+
* @examples 'undefined': type: string | undefined
|
87
|
+
* @examples 'questionTokenAndUndefined': type?: string | undefined
|
88
|
+
* @default 'questionToken'
|
89
|
+
*/
|
90
|
+
optionalType?: 'questionToken' | 'undefined' | 'questionTokenAndUndefined';
|
91
|
+
transformers?: {
|
92
|
+
/**
|
93
|
+
* Customize the names based on the type that is provided by the plugin.
|
94
|
+
*/
|
95
|
+
name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string;
|
96
|
+
};
|
97
|
+
/**
|
98
|
+
* Export an Oas object as Oas type with `import type { Infer } from '@kubb/swagger-ts/oas'`
|
99
|
+
*/
|
100
|
+
oasType?: 'infer' | false;
|
101
|
+
};
|
102
|
+
type ResolvedOptions = {
|
103
|
+
enumType: NonNullable<Options['enumType']>;
|
104
|
+
enumSuffix: NonNullable<Options['enumSuffix']>;
|
105
|
+
dateType: NonNullable<Options['dateType']>;
|
106
|
+
unknownType: NonNullable<Options['unknownType']>;
|
107
|
+
optionalType: NonNullable<Options['optionalType']>;
|
108
|
+
transformers: NonNullable<Options['transformers']>;
|
109
|
+
oasType: NonNullable<Options['oasType']>;
|
110
|
+
usedEnumNames: Record<string, number>;
|
111
|
+
};
|
112
|
+
type FileMeta = {
|
113
|
+
pluginKey?: Plugin['key'];
|
114
|
+
name?: string;
|
115
|
+
tag?: string;
|
116
|
+
};
|
117
|
+
type PluginOptions = PluginFactoryOptions<'swagger-ts', Options, ResolvedOptions, never, ResolvePathOptions>;
|
118
|
+
declare module '@kubb/core' {
|
119
|
+
interface _Register {
|
120
|
+
['@kubb/swagger-ts']: PluginOptions;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
12
124
|
declare const pluginName = "swagger-ts";
|
13
125
|
declare const pluginKey: PluginOptions['key'];
|
14
126
|
declare const definePlugin: (options: Options) => _kubb_core.UserPluginWithLifeCycle<PluginOptions>;
|
@@ -18,4 +130,4 @@ declare const definePlugin: (options: Options) => _kubb_core.UserPluginWithLifeC
|
|
18
130
|
*/
|
19
131
|
declare const definePluginDefault: (options: Options) => _kubb_core.UserPluginWithLifeCycle<PluginOptions>;
|
20
132
|
|
21
|
-
export { Options, PluginOptions, definePluginDefault as default, definePlugin, pluginKey, pluginName };
|
133
|
+
export { type FileMeta, type Options, type PluginOptions, definePluginDefault as default, definePlugin, pluginKey, pluginName };
|
package/dist/index.js
CHANGED
@@ -1,12 +1,9 @@
|
|
1
1
|
import {
|
2
2
|
definePlugin,
|
3
3
|
pluginKey,
|
4
|
-
pluginName
|
5
|
-
|
6
|
-
|
7
|
-
// src/index.ts
|
8
|
-
var definePluginDefault = definePlugin;
|
9
|
-
var src_default = definePluginDefault;
|
4
|
+
pluginName,
|
5
|
+
src_default
|
6
|
+
} from "./chunk-QIZFD754.js";
|
10
7
|
export {
|
11
8
|
src_default as default,
|
12
9
|
definePlugin,
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kubb/swagger-ts",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.11.0",
|
4
4
|
"description": "Generator swagger-ts",
|
5
5
|
"keywords": [
|
6
6
|
"typescript",
|
@@ -59,14 +59,14 @@
|
|
59
59
|
"hotscript": "^1.0.13",
|
60
60
|
"json-schema-to-ts": "^3.0.1",
|
61
61
|
"ts-toolbelt": "^9.6.0",
|
62
|
-
"@kubb/core": "2.
|
63
|
-
"@kubb/parser": "2.
|
64
|
-
"@kubb/react": "2.
|
65
|
-
"@kubb/swagger": "2.
|
66
|
-
"@kubb/types": "2.
|
62
|
+
"@kubb/core": "2.11.0",
|
63
|
+
"@kubb/parser": "2.11.0",
|
64
|
+
"@kubb/react": "2.11.0",
|
65
|
+
"@kubb/swagger": "2.11.0",
|
66
|
+
"@kubb/types": "2.11.0"
|
67
67
|
},
|
68
68
|
"devDependencies": {
|
69
|
-
"@types/react": "^18.2.
|
69
|
+
"@types/react": "^18.2.69",
|
70
70
|
"eslint": "^8.57.0",
|
71
71
|
"expect-type": "^0.17.3",
|
72
72
|
"react": "^18.2.0",
|
@@ -76,7 +76,7 @@
|
|
76
76
|
"@kubb/tsup-config": "1.1.8"
|
77
77
|
},
|
78
78
|
"peerDependencies": {
|
79
|
-
"@kubb/react": "2.
|
79
|
+
"@kubb/react": "2.11.0"
|
80
80
|
},
|
81
81
|
"packageManager": "pnpm@8.3.0",
|
82
82
|
"engines": {
|