@kubb/swagger-ts 2.4.1 → 2.5.1
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-7UWJRVRW.js → chunk-3K3RRBUO.js} +35 -21
- package/dist/chunk-3K3RRBUO.js.map +1 -0
- package/dist/{chunk-CMZLMWOU.cjs → chunk-WM64J24S.cjs} +35 -21
- package/dist/chunk-WM64J24S.cjs.map +1 -0
- package/dist/components.cjs +4 -4
- package/dist/components.d.cts +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +1 -1
- package/dist/index.cjs +9 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +573 -6
- package/dist/index.d.ts +573 -6
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/{types-ZlpJhb2p.d.cts → types-Y_otwxvd.d.cts} +8 -2
- package/dist/{types-ZlpJhb2p.d.ts → types-Y_otwxvd.d.ts} +8 -2
- package/package.json +7 -7
- package/src/TypeGenerator.ts +14 -8
- package/src/components/Mutation.tsx +17 -13
- package/src/index.ts +1 -4
- package/src/plugin.ts +4 -2
- package/src/types.ts +8 -2
- package/dist/chunk-7UWJRVRW.js.map +0 -1
- package/dist/chunk-CMZLMWOU.cjs.map +0 -1
@@ -215,6 +215,7 @@ var definePlugin = createPlugin((options) => {
|
|
215
215
|
override = [],
|
216
216
|
enumType = "asConst",
|
217
217
|
dateType = "string",
|
218
|
+
unknownType = "any",
|
218
219
|
optionalType = "questionToken",
|
219
220
|
transformers: transformers5 = {},
|
220
221
|
oasType = false
|
@@ -229,7 +230,8 @@ var definePlugin = createPlugin((options) => {
|
|
229
230
|
optionalType,
|
230
231
|
oasType,
|
231
232
|
// keep the used enumnames between TypeBuilder and OperationGenerator per plugin(pluginKey)
|
232
|
-
usedEnumNames: {}
|
233
|
+
usedEnumNames: {},
|
234
|
+
unknownType
|
233
235
|
},
|
234
236
|
pre: [pluginName$1],
|
235
237
|
resolvePath(baseName, directory, options2) {
|
@@ -335,7 +337,7 @@ var definePlugin = createPlugin((options) => {
|
|
335
337
|
});
|
336
338
|
|
337
339
|
// src/TypeGenerator.ts
|
338
|
-
var _usedAliasNames, _getTypeFromProperties, getTypeFromProperties_fn, _getRefAlias, getRefAlias_fn, _getParsedSchema, getParsedSchema_fn, _getBaseTypeFromSchema, getBaseTypeFromSchema_fn;
|
340
|
+
var _usedAliasNames, _getTypeFromProperties, getTypeFromProperties_fn, _getRefAlias, getRefAlias_fn, _getParsedSchema, getParsedSchema_fn, _getBaseTypeFromSchema, getBaseTypeFromSchema_fn, _unknownReturn, unknownReturn_get;
|
339
341
|
var TypeGenerator = class extends Generator {
|
340
342
|
constructor() {
|
341
343
|
super(...arguments);
|
@@ -353,6 +355,7 @@ var TypeGenerator = class extends Generator {
|
|
353
355
|
* schema and returns the appropriate type.
|
354
356
|
*/
|
355
357
|
__privateAdd(this, _getBaseTypeFromSchema);
|
358
|
+
__privateAdd(this, _unknownReturn);
|
356
359
|
this.refs = {};
|
357
360
|
this.imports = [];
|
358
361
|
this.extraNodes = [];
|
@@ -449,7 +452,7 @@ getTypeFromProperties_fn = function(baseSchema, baseName) {
|
|
449
452
|
});
|
450
453
|
});
|
451
454
|
if (additionalProperties) {
|
452
|
-
const type = additionalProperties === true ?
|
455
|
+
const type = additionalProperties === true ? __privateGet(this, _unknownReturn, unknownReturn_get) : this.getTypeFromSchema(additionalProperties);
|
453
456
|
if (type) {
|
454
457
|
members.push(factory2.createIndexSignature(type));
|
455
458
|
}
|
@@ -487,7 +490,7 @@ _getBaseTypeFromSchema = new WeakSet();
|
|
487
490
|
getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
488
491
|
const { schema, version } = __privateMethod(this, _getParsedSchema, getParsedSchema_fn).call(this, _schema);
|
489
492
|
if (!schema) {
|
490
|
-
return
|
493
|
+
return __privateGet(this, _unknownReturn, unknownReturn_get);
|
491
494
|
}
|
492
495
|
if (isReference(schema)) {
|
493
496
|
return __privateMethod(this, _getRefAlias, getRefAlias_fn).call(this, schema, baseName);
|
@@ -499,7 +502,7 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
499
502
|
nodes: schema.oneOf.map((item) => {
|
500
503
|
return item && this.getTypeFromSchema(item);
|
501
504
|
}).filter((item) => {
|
502
|
-
return item && item !==
|
505
|
+
return item && item !== __privateGet(this, _unknownReturn, unknownReturn_get);
|
503
506
|
})
|
504
507
|
});
|
505
508
|
if (schemaWithoutOneOf.properties) {
|
@@ -516,7 +519,7 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
516
519
|
nodes: schema.anyOf.map((item) => {
|
517
520
|
return item && this.getTypeFromSchema(item);
|
518
521
|
}).filter((item) => {
|
519
|
-
return item && item !==
|
522
|
+
return item && item !== __privateGet(this, _unknownReturn, unknownReturn_get);
|
520
523
|
})
|
521
524
|
});
|
522
525
|
if (schemaWithoutAnyOf.properties) {
|
@@ -533,7 +536,7 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
533
536
|
nodes: schema.allOf.map((item) => {
|
534
537
|
return item && this.getTypeFromSchema(item);
|
535
538
|
}).filter((item) => {
|
536
|
-
return item && item !==
|
539
|
+
return item && item !== __privateGet(this, _unknownReturn, unknownReturn_get);
|
537
540
|
})
|
538
541
|
});
|
539
542
|
if (schemaWithoutAllOf.properties) {
|
@@ -623,7 +626,14 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
623
626
|
if (schema.format === "binary") {
|
624
627
|
return factory2.createTypeReferenceNode("Blob", []);
|
625
628
|
}
|
626
|
-
return
|
629
|
+
return __privateGet(this, _unknownReturn, unknownReturn_get);
|
630
|
+
};
|
631
|
+
_unknownReturn = new WeakSet();
|
632
|
+
unknownReturn_get = function() {
|
633
|
+
if (this.options.unknownType === "any") {
|
634
|
+
return factory2.keywordTypeNodes.any;
|
635
|
+
}
|
636
|
+
return factory2.keywordTypeNodes.unknown;
|
627
637
|
};
|
628
638
|
|
629
639
|
// src/TypeBuilder.ts
|
@@ -707,19 +717,23 @@ function printCombinedSchema2(name, operation, schemas) {
|
|
707
717
|
})
|
708
718
|
});
|
709
719
|
}
|
710
|
-
const namespaceNode = factory2.
|
720
|
+
const namespaceNode = factory2.createTypeAliasDeclaration({
|
711
721
|
name: operation.method === "get" ? `${name}Query` : `${name}Mutation`,
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
722
|
+
type: factory2.createTypeLiteralNode(
|
723
|
+
Object.keys(properties).map((key) => {
|
724
|
+
const type = properties[key];
|
725
|
+
if (!type) {
|
726
|
+
return void 0;
|
727
|
+
}
|
728
|
+
return factory2.createPropertySignature(
|
729
|
+
{
|
730
|
+
name: transformers2.pascalCase(key),
|
731
|
+
type
|
732
|
+
}
|
733
|
+
);
|
734
|
+
}).filter(Boolean)
|
735
|
+
),
|
736
|
+
modifiers: [factory2.modifiers.export]
|
723
737
|
});
|
724
738
|
return print(namespaceNode);
|
725
739
|
}
|
@@ -760,4 +774,4 @@ Mutation.File = function({ mode }) {
|
|
760
774
|
|
761
775
|
export { Mutation, Oas, Query, definePlugin, pluginKey, pluginName };
|
762
776
|
//# sourceMappingURL=out.js.map
|
763
|
-
//# sourceMappingURL=chunk-
|
777
|
+
//# sourceMappingURL=chunk-3K3RRBUO.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/Mutation.tsx","../src/TypeBuilder.ts","../src/TypeGenerator.ts","../src/plugin.ts","../src/OperationGenerator.tsx","../src/components/Oas.tsx","../src/components/Query.tsx"],"names":["transformers","print","factory","File","usePlugin","usePluginManager","useOas","useOperation","useOperationFile","useOperationName","useSchemas","Generator","keywordTypeNodes","Template","pluginKey","Fragment","jsx","jsxs","options","node","path","printCombinedSchema"],"mappings":"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","sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport * as factory from '@kubb/parser/factory'\nimport { File, usePlugin, usePluginManager } from '@kubb/react'\nimport { useOas, useOperation, useOperationFile, useOperationName, useSchemas } from '@kubb/swagger/hooks'\n\nimport { TypeBuilder } from '../TypeBuilder.ts'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\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 builder: TypeBuilder\n}\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 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 Mutation({\n builder,\n}: Props): ReactNode {\n const { source } = builder.build()\n\n return (\n <>\n {source}\n </>\n )\n}\n\ntype FileProps = {\n mode: KubbFile.Mode\n}\n\nMutation.File = function({ mode }: FileProps): ReactNode {\n const { options } = usePlugin<PluginOptions>()\n\n const schemas = useSchemas()\n const pluginManager = usePluginManager()\n const oas = useOas()\n const file = useOperationFile()\n const factoryName = useOperationName({ type: 'type' })\n const operation = useOperation()\n\n const builder = new TypeBuilder(options, { oas, pluginManager })\n .add(schemas.pathParams)\n .add(schemas.queryParams)\n .add(schemas.headerParams)\n .add(schemas.response)\n .add(schemas.request)\n .add(schemas.errors)\n\n const { source, imports } = builder.build()\n\n return (\n <>\n <File<FileMeta>\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n >\n {mode === 'directory' && imports.map((item, index) => {\n return <File.Import key={index} root={file.path} {...item} />\n })}\n <File.Source>\n {source}\n {printCombinedSchema(factoryName, operation, schemas)}\n </File.Source>\n </File>\n </>\n )\n}\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport { OasBuilder } from '@kubb/swagger'\nimport { refsSorter } from '@kubb/swagger/utils'\n\nimport { TypeGenerator } from './TypeGenerator.ts'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ImportMeta } from '@kubb/swagger'\nimport type { PluginOptions } from './types.ts'\n\nexport class TypeBuilder extends OasBuilder<PluginOptions['resolvedOptions']> {\n build(name?: string): Required<Pick<KubbFile.File, 'imports' | 'source'>> {\n const importMeta: ImportMeta[] = []\n const codes: string[] = []\n\n const generated = this.items\n .filter((operationSchema) => (name ? operationSchema.name === name : true))\n .sort(transformers.nameSorter)\n .map((operationSchema) => {\n const generator = new TypeGenerator(this.options, this.context)\n const required = Array.isArray(operationSchema.schema?.required) ? !!operationSchema.schema.required.length : !!operationSchema.schema?.required\n\n const sources = generator.build({\n schema: operationSchema.schema,\n baseName: operationSchema.name,\n description: operationSchema.description,\n keysToOmit: operationSchema.keysToOmit,\n optional: !required && !!operationSchema.name.includes('Params'),\n })\n\n importMeta.push(...generator.imports)\n\n return {\n import: {\n refs: generator.refs,\n name: operationSchema.name,\n },\n sources,\n }\n })\n .sort(refsSorter)\n\n generated.forEach((item) => {\n codes.push(print(item.sources))\n })\n\n const imports: KubbFile.Import[] = importMeta.map((item) => {\n return {\n name: [item.ref.propertyName],\n path: item.path,\n isTypeOnly: item.isTypeOnly,\n }\n })\n\n return {\n imports,\n source: transformers.combineCodes(codes),\n }\n }\n}\n","import { Generator } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { getUniqueName } from '@kubb/core/utils'\nimport * as factory from '@kubb/parser/factory'\nimport { keywordTypeNodes } from '@kubb/parser/factory'\nimport { getSchemaFactory, isReference } from '@kubb/swagger/utils'\n\nimport { pluginKey } from './plugin.ts'\n\nimport type { PluginManager } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\nimport type { ImportMeta, Refs } from '@kubb/swagger'\nimport type { Oas, OasTypes, OpenAPIV3, OpenAPIV3_1 } from '@kubb/swagger/oas'\nimport type { PluginOptions } from './types.ts'\n\n// based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n\ntype Context = {\n oas: Oas\n pluginManager: PluginManager\n}\n\nexport class TypeGenerator extends Generator<PluginOptions['resolvedOptions'], Context> {\n refs: Refs = {}\n imports: ImportMeta[] = []\n\n extraNodes: ts.Node[] = []\n\n aliases: ts.TypeAliasDeclaration[] = []\n\n // Keep track of already used type aliases\n #usedAliasNames: Record<string, number> = {}\n\n build({\n schema,\n optional,\n baseName,\n description,\n keysToOmit,\n }: {\n schema: OasTypes.SchemaObject\n baseName: string\n description?: string\n optional?: boolean\n keysToOmit?: string[]\n }): ts.Node[] {\n const nodes: ts.Node[] = []\n let type = this.getTypeFromSchema(schema, baseName)\n\n if (!type) {\n return this.extraNodes\n }\n\n if (optional) {\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: this.context.pluginManager.resolveName({ name: baseName, pluginKey, type: 'type' }),\n type: keysToOmit?.length ? factory.createOmitDeclaration({ keys: keysToOmit, type, nonNullable: true }) : type,\n })\n\n if (description) {\n nodes.push(\n factory.appendJSDocToNode({\n node,\n comments: [`@description ${transformers.trim(description)}`],\n }),\n )\n } else {\n nodes.push(node)\n }\n\n // filter out if the export name is the same as one that we already defined in extraNodes(see enum)\n const filterdNodes = nodes.filter(\n (node: ts.Node) =>\n !this.extraNodes.some(\n (extraNode: ts.Node) => (extraNode as ts.TypeAliasDeclaration)?.name?.escapedText === (node as ts.TypeAliasDeclaration)?.name?.escapedText,\n ),\n )\n\n return [...this.extraNodes, ...filterdNodes]\n }\n\n /**\n * Creates a type node from a given schema.\n * Delegates to getBaseTypeFromSchema internally and\n * optionally adds a union with null.\n */\n getTypeFromSchema(schema?: OasTypes.SchemaObject, name?: string): ts.TypeNode | null {\n const type = this.#getBaseTypeFromSchema(schema, name)\n\n if (!type) {\n return null\n }\n\n if (schema && !schema.nullable) {\n return type\n }\n\n return factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.null] })\n }\n\n /**\n * Recursively creates a type literal with the given props.\n */\n #getTypeFromProperties(baseSchema?: OasTypes.SchemaObject, baseName?: string): ts.TypeNode | null {\n const { optionalType } = this.options\n const properties = baseSchema?.properties || {}\n const required = baseSchema?.required\n const additionalProperties = baseSchema?.additionalProperties\n\n const members: Array<ts.TypeElement | null> = Object.keys(properties).map((name) => {\n const schema = properties[name] as OasTypes.SchemaObject\n\n const isRequired = Array.isArray(required) ? required.includes(name) : !!required\n let type = this.getTypeFromSchema(schema, this.context.pluginManager.resolveName({ name: `${baseName || ''} ${name}`, pluginKey, type: 'type' }))\n\n if (!type) {\n return null\n }\n\n if (!isRequired && ['undefined', 'questionTokenAndUndefined'].includes(optionalType as string)) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.undefined] })\n }\n const propertySignature = factory.createPropertySignature({\n questionToken: ['questionToken', 'questionTokenAndUndefined'].includes(optionalType as string) && !isRequired,\n name,\n type: type as ts.TypeNode,\n readOnly: schema.readOnly,\n })\n\n return factory.appendJSDocToNode({\n node: propertySignature,\n comments: [\n schema.description ? `@description ${schema.description}` : undefined,\n schema.type ? `@type ${schema.type?.toString()}${isRequired ? '' : ' | undefined'} ${schema.format || ''}` : undefined,\n schema.example ? `@example ${schema.example as string}` : undefined,\n schema.deprecated ? `@deprecated` : undefined,\n schema.default !== undefined && typeof schema.default === 'string' ? `@default '${schema.default}'` : undefined,\n schema.default !== undefined && typeof schema.default !== 'string' ? `@default ${schema.default as string}` : undefined,\n ].filter(Boolean),\n })\n })\n if (additionalProperties) {\n const type = additionalProperties === true ? this.#unknownReturn : this.getTypeFromSchema(additionalProperties as OasTypes.SchemaObject)\n\n if (type) {\n members.push(factory.createIndexSignature(type))\n }\n }\n return factory.createTypeLiteralNode(members.filter(Boolean))\n }\n\n /**\n * Create a type alias for the schema referenced by the given ReferenceObject\n */\n #getRefAlias(obj: OpenAPIV3.ReferenceObject, _baseName?: string) {\n const { $ref } = obj\n let ref = this.refs[$ref]\n\n if (ref) {\n return factory.createTypeReferenceNode(ref.propertyName, undefined)\n }\n\n const originalName = getUniqueName($ref.replace(/.+\\//, ''), this.#usedAliasNames)\n const propertyName = this.context.pluginManager.resolveName({ name: originalName, pluginKey, type: 'type' })\n\n ref = this.refs[$ref] = {\n propertyName,\n originalName,\n }\n\n const fileName = this.context.pluginManager.resolveName({ name: originalName, pluginKey, type: 'file' })\n const path = this.context.pluginManager.resolvePath({ baseName: fileName, pluginKey })\n\n this.imports.push({\n ref,\n path: path || '',\n isTypeOnly: true,\n })\n\n return factory.createTypeReferenceNode(ref.propertyName, undefined)\n }\n\n #getParsedSchema(schema?: OasTypes.SchemaObject) {\n const parsedSchema = getSchemaFactory(this.context.oas)(schema)\n return parsedSchema\n }\n\n /**\n * This is the very core of the OpenAPI to TS conversion - it takes a\n * schema and returns the appropriate type.\n */\n #getBaseTypeFromSchema(\n _schema: OasTypes.SchemaObject | undefined,\n baseName?: string,\n ): ts.TypeNode | null {\n const { schema, version } = this.#getParsedSchema(_schema)\n\n if (!schema) {\n return this.#unknownReturn\n }\n\n if (isReference(schema)) {\n return this.#getRefAlias(schema, baseName)\n }\n\n if (schema.oneOf) {\n // union\n const schemaWithoutOneOf = { ...schema, oneOf: undefined } as OasTypes.SchemaObject\n\n const union = factory.createUnionDeclaration({\n withParentheses: true,\n nodes: schema.oneOf\n .map((item) => {\n return item && this.getTypeFromSchema(item as OasTypes.SchemaObject)\n })\n .filter((item) => {\n return item && item !== this.#unknownReturn\n }) as Array<ts.TypeNode>,\n })\n\n if (schemaWithoutOneOf.properties) {\n return factory.createIntersectionDeclaration({\n nodes: [this.getTypeFromSchema(schemaWithoutOneOf, baseName), union].filter(Boolean),\n })\n }\n\n return union\n }\n\n if (schema.anyOf) {\n const schemaWithoutAnyOf = { ...schema, anyOf: undefined } as OasTypes.SchemaObject\n\n const union = factory.createUnionDeclaration({\n withParentheses: true,\n nodes: schema.anyOf\n .map((item) => {\n return item && this.getTypeFromSchema(item as OasTypes.SchemaObject)\n })\n .filter((item) => {\n return item && item !== this.#unknownReturn\n }) as Array<ts.TypeNode>,\n })\n\n if (schemaWithoutAnyOf.properties) {\n return factory.createIntersectionDeclaration({\n nodes: [this.getTypeFromSchema(schemaWithoutAnyOf, baseName), union].filter(Boolean),\n })\n }\n\n return union\n }\n if (schema.allOf) {\n // intersection/add\n const schemaWithoutAllOf = { ...schema, allOf: undefined } as OasTypes.SchemaObject\n\n const and = factory.createIntersectionDeclaration({\n withParentheses: true,\n nodes: schema.allOf\n .map((item) => {\n return item && this.getTypeFromSchema(item as OasTypes.SchemaObject)\n })\n .filter((item) => {\n return item && item !== this.#unknownReturn\n }) as Array<ts.TypeNode>,\n })\n\n if (schemaWithoutAllOf.properties) {\n return factory.createIntersectionDeclaration({\n nodes: [this.getTypeFromSchema(schemaWithoutAllOf, baseName), and].filter(Boolean),\n })\n }\n\n return and\n }\n\n /**\n * Enum will be defined outside the baseType(hints the baseName check)\n */\n if (schema.enum && baseName) {\n const enumName = getUniqueName(baseName, this.options.usedEnumNames)\n\n let enums: [key: string, value: string | number][] = [...new Set(schema.enum)].map((key) => [key, key])\n\n const extensionEnums: Array<typeof enums> = ['x-enumNames', 'x-enum-varnames']\n .filter(extensionKey => extensionKey in schema)\n .map((extensionKey) =>\n [...new Set(schema[extensionKey as keyof typeof schema] as string[])].map((key, index) => [key, schema.enum?.[index] as string] as const)\n )\n\n if (extensionEnums.length > 0 && extensionEnums[0]) {\n enums = extensionEnums[0]\n }\n\n this.extraNodes.push(\n ...factory.createEnumDeclaration({\n name: transformers.camelCase(enumName),\n typeName: this.context.pluginManager.resolveName({ name: enumName, pluginKey, type: 'type' }),\n enums,\n type: this.options.enumType,\n }),\n )\n return factory.createTypeReferenceNode(this.context.pluginManager.resolveName({ name: enumName, pluginKey, type: 'type' }), undefined)\n }\n\n if (schema.enum) {\n return factory.createUnionDeclaration({\n nodes: schema.enum.map((name) => {\n return factory.createLiteralTypeNode(typeof name === 'number' ? factory.createNumericLiteral(name) : factory.createStringLiteral(`${name}`))\n }) as unknown as Array<ts.TypeNode>,\n })\n }\n\n if ('items' in schema) {\n // items -> array\n const node = this.getTypeFromSchema(schema.items as OasTypes.SchemaObject, baseName)\n if (node) {\n return factory.createArrayTypeNode(node)\n }\n }\n\n /**\n * OpenAPI 3.1\n * @link https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation\n */\n\n if ('prefixItems' in schema) {\n const prefixItems = schema.prefixItems as OasTypes.SchemaObject[]\n\n return factory.createTupleDeclaration({\n nodes: prefixItems.map((item) => {\n // no baseType so we can fall back on an union when using enum\n return this.getTypeFromSchema(item, undefined)\n }) as Array<ts.TypeNode>,\n })\n }\n\n if (schema.properties || schema.additionalProperties) {\n // properties -> literal type\n return this.#getTypeFromProperties(schema, baseName)\n }\n\n /**\n * validate \"const\" property as defined in JSON-Schema-Validation\n *\n * https://json-schema.org/draft/2020-12/json-schema-validation#name-const\n *\n * > 6.1.3. const\n * > The value of this keyword MAY be of any type, including null.\n * > Use of this keyword is functionally equivalent to an \"enum\" (Section 6.1.2) with a single value.\n * > An instance validates successfully against this keyword if its value is equal to the value of the keyword.\n */\n if (version === '3.1' && 'const' in schema) {\n // const keyword takes precendence over the actual type.\n if (schema['const']) {\n if (typeof schema['const'] === 'string') {\n return factory.createLiteralTypeNode(factory.createStringLiteral(schema['const']))\n } else if (typeof schema['const'] === 'number') {\n return factory.createLiteralTypeNode(factory.createNumericLiteral(schema['const']))\n }\n } else {\n return keywordTypeNodes.null\n }\n }\n\n if (schema.type) {\n if (Array.isArray(schema.type)) {\n // TODO remove hardcoded first type, second nullable\n // OPENAPI v3.1.0: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n const [type, nullable] = schema.type as Array<OpenAPIV3_1.NonArraySchemaObjectType>\n\n return factory.createUnionDeclaration({\n nodes: [\n this.getTypeFromSchema(\n {\n ...schema,\n type,\n },\n baseName,\n ),\n nullable ? factory.createLiteralTypeNode(factory.createNull()) : undefined,\n ].filter(Boolean),\n })\n }\n\n if (this.options.dateType === 'date' && ['date', 'date-time'].some((item) => item === schema.format)) {\n return factory.createTypeReferenceNode(factory.createIdentifier('Date'))\n }\n\n // string, boolean, null, number\n if (schema.type in factory.keywordTypeNodes) {\n return factory.keywordTypeNodes[schema.type as keyof typeof factory.keywordTypeNodes]\n }\n }\n\n if (schema.format === 'binary') {\n return factory.createTypeReferenceNode('Blob', [])\n }\n\n return this.#unknownReturn\n }\n\n get #unknownReturn() {\n if (this.options.unknownType === 'any') {\n return factory.keywordTypeNodes.any\n }\n\n return factory.keywordTypeNodes.unknown\n }\n}\n","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 { TypeBuilder } from './TypeBuilder.ts'\n\nimport type { KubbFile, Plugin } from '@kubb/core'\nimport type { PluginOptions as SwaggerPluginOptions } from '@kubb/swagger'\nimport type { OasTypes } from '@kubb/swagger/oas'\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 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 enumType,\n optionalType,\n oasType,\n // keep the used enumnames between TypeBuilder and OperationGenerator per plugin(pluginKey)\n usedEnumNames: {},\n unknownType,\n },\n pre: [swaggerPluginName],\n resolvePath(baseName, directory, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = 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\n const schemas = await swaggerPlugin.api.getSchemas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n const builder = new TypeBuilder(this.plugin.options, { oas, pluginManager: this.pluginManager })\n\n builder.add(\n Object.entries(schemas).map(([name, schema]: [string, OasTypes.SchemaObject]) => ({ name, schema })),\n )\n\n if (mode === 'directory') {\n const mapFolderSchema = async ([name]: [string, OasTypes.SchemaObject]) => {\n const baseName = `${this.resolveName({ name, pluginKey: this.plugin.key, type: 'file' })}.ts` as const\n const resolvedPath = this.resolvePath({ baseName, pluginKey: this.plugin.key })\n const { source, imports } = builder.build(name)\n\n if (!resolvedPath) {\n return null\n }\n\n return this.addFile({\n path: resolvedPath,\n baseName,\n source,\n imports: imports.map(item => ({ ...item, root: resolvedPath })),\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n }\n\n const promises = Object.entries(schemas).map(mapFolderSchema)\n\n await Promise.all(promises)\n }\n\n if (mode === 'file') {\n const resolvedPath = this.resolvePath({ baseName: '', pluginKey: this.plugin.key })\n const { source } = builder.build()\n\n if (!resolvedPath) {\n return\n }\n\n await this.addFile({\n path: resolvedPath,\n baseName: output.path as KubbFile.BaseName,\n source,\n imports: [],\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n }\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 files = await operationGenerator.build()\n await this.addFile(...files)\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'\n\nimport { Mutation } from './components/Mutation.tsx'\nimport { Oas } from './components/Oas.tsx'\nimport { Query } from './components/Query.tsx'\n\nimport type { AppContextProps } from '@kubb/react'\nimport type { OperationMethodResult, OperationSchemas } 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(): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin } = this.context\n\n if (!plugin.options.oasType) {\n return null\n }\n\n const root = createRoot<AppContextProps>({ logger: pluginManager.logger })\n root.render(\n <Oas.File name=\"oas\" typeName=\"Oas\" />,\n { meta: { oas, pluginManager, plugin } },\n )\n\n return root.files\n }\n\n async get(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode = 'directory' } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n root.render(\n <Query.File mode={mode} />,\n { meta: { oas, pluginManager, plugin: { ...plugin, options }, schemas, operation } },\n )\n\n return root.files\n }\n\n async post(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode = 'directory' } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n root.render(\n <Mutation.File mode={mode} />,\n { meta: { oas, pluginManager, plugin: { ...plugin, options }, schemas, operation } },\n )\n\n return root.files\n }\n\n async put(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, schemas, options)\n }\n async patch(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, schemas, options)\n }\n async delete(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, schemas, options)\n }\n}\n","import { File, Type, usePlugin } from '@kubb/react'\nimport { useFile } 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 Oas({\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\nOas.File = function({ name, typeName, templates = defaultTemplates }: FileProps): ReactNode {\n const { key: pluginKey } = usePlugin<PluginOptions>()\n const file = useFile({ name, pluginKey })\n\n const Template = templates.default\n\n return (\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 <Oas Template={Template} name={name} typeName={typeName} />\n </File.Source>\n </File>\n )\n}\n\nOas.templates = defaultTemplates\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport * as factory from '@kubb/parser/factory'\nimport { File, usePlugin, usePluginManager } from '@kubb/react'\nimport { useOas, useOperation, useOperationFile, useOperationName, useSchemas } from '@kubb/swagger/hooks'\n\nimport { TypeBuilder } from '../TypeBuilder.ts'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\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 builder: TypeBuilder\n}\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 Query({\n builder,\n}: Props): ReactNode {\n const { source } = builder.build()\n\n return (\n <>\n {source}\n </>\n )\n}\n\ntype FileProps = {\n mode: KubbFile.Mode\n}\n\nQuery.File = function({ mode }: FileProps): ReactNode {\n const { options } = usePlugin<PluginOptions>()\n\n const schemas = useSchemas()\n const pluginManager = usePluginManager()\n const oas = useOas()\n const file = useOperationFile()\n const factoryName = useOperationName({ type: 'type' })\n const operation = useOperation()\n\n const builder = new TypeBuilder(options, { oas, pluginManager })\n .add(schemas.pathParams)\n .add(schemas.queryParams)\n .add(schemas.headerParams)\n .add(schemas.response)\n .add(schemas.errors)\n\n const { source, imports } = builder.build()\n\n return (\n <>\n <File<FileMeta>\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n >\n {mode === 'directory' && imports.map((item, index) => {\n return <File.Import key={index} root={file.path} {...item} />\n })}\n <File.Source>\n {source}\n {printCombinedSchema(factoryName, operation, schemas)}\n </File.Source>\n </File>\n </>\n )\n}\n"]}
|
@@ -240,6 +240,7 @@ var definePlugin = core.createPlugin((options) => {
|
|
240
240
|
override = [],
|
241
241
|
enumType = "asConst",
|
242
242
|
dateType = "string",
|
243
|
+
unknownType = "any",
|
243
244
|
optionalType = "questionToken",
|
244
245
|
transformers: transformers5 = {},
|
245
246
|
oasType = false
|
@@ -254,7 +255,8 @@ var definePlugin = core.createPlugin((options) => {
|
|
254
255
|
optionalType,
|
255
256
|
oasType,
|
256
257
|
// keep the used enumnames between TypeBuilder and OperationGenerator per plugin(pluginKey)
|
257
|
-
usedEnumNames: {}
|
258
|
+
usedEnumNames: {},
|
259
|
+
unknownType
|
258
260
|
},
|
259
261
|
pre: [swagger.pluginName],
|
260
262
|
resolvePath(baseName, directory, options2) {
|
@@ -360,7 +362,7 @@ var definePlugin = core.createPlugin((options) => {
|
|
360
362
|
});
|
361
363
|
|
362
364
|
// src/TypeGenerator.ts
|
363
|
-
var _usedAliasNames, _getTypeFromProperties, getTypeFromProperties_fn, _getRefAlias, getRefAlias_fn, _getParsedSchema, getParsedSchema_fn, _getBaseTypeFromSchema, getBaseTypeFromSchema_fn;
|
365
|
+
var _usedAliasNames, _getTypeFromProperties, getTypeFromProperties_fn, _getRefAlias, getRefAlias_fn, _getParsedSchema, getParsedSchema_fn, _getBaseTypeFromSchema, getBaseTypeFromSchema_fn, _unknownReturn, unknownReturn_get;
|
364
366
|
var TypeGenerator = class extends core.Generator {
|
365
367
|
constructor() {
|
366
368
|
super(...arguments);
|
@@ -378,6 +380,7 @@ var TypeGenerator = class extends core.Generator {
|
|
378
380
|
* schema and returns the appropriate type.
|
379
381
|
*/
|
380
382
|
__privateAdd(this, _getBaseTypeFromSchema);
|
383
|
+
__privateAdd(this, _unknownReturn);
|
381
384
|
this.refs = {};
|
382
385
|
this.imports = [];
|
383
386
|
this.extraNodes = [];
|
@@ -474,7 +477,7 @@ getTypeFromProperties_fn = function(baseSchema, baseName) {
|
|
474
477
|
});
|
475
478
|
});
|
476
479
|
if (additionalProperties) {
|
477
|
-
const type = additionalProperties === true ?
|
480
|
+
const type = additionalProperties === true ? __privateGet(this, _unknownReturn, unknownReturn_get) : this.getTypeFromSchema(additionalProperties);
|
478
481
|
if (type) {
|
479
482
|
members.push(factory2__namespace.createIndexSignature(type));
|
480
483
|
}
|
@@ -512,7 +515,7 @@ _getBaseTypeFromSchema = new WeakSet();
|
|
512
515
|
getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
513
516
|
const { schema, version } = __privateMethod(this, _getParsedSchema, getParsedSchema_fn).call(this, _schema);
|
514
517
|
if (!schema) {
|
515
|
-
return
|
518
|
+
return __privateGet(this, _unknownReturn, unknownReturn_get);
|
516
519
|
}
|
517
520
|
if (utils$1.isReference(schema)) {
|
518
521
|
return __privateMethod(this, _getRefAlias, getRefAlias_fn).call(this, schema, baseName);
|
@@ -524,7 +527,7 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
524
527
|
nodes: schema.oneOf.map((item) => {
|
525
528
|
return item && this.getTypeFromSchema(item);
|
526
529
|
}).filter((item) => {
|
527
|
-
return item && item !==
|
530
|
+
return item && item !== __privateGet(this, _unknownReturn, unknownReturn_get);
|
528
531
|
})
|
529
532
|
});
|
530
533
|
if (schemaWithoutOneOf.properties) {
|
@@ -541,7 +544,7 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
541
544
|
nodes: schema.anyOf.map((item) => {
|
542
545
|
return item && this.getTypeFromSchema(item);
|
543
546
|
}).filter((item) => {
|
544
|
-
return item && item !==
|
547
|
+
return item && item !== __privateGet(this, _unknownReturn, unknownReturn_get);
|
545
548
|
})
|
546
549
|
});
|
547
550
|
if (schemaWithoutAnyOf.properties) {
|
@@ -558,7 +561,7 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
558
561
|
nodes: schema.allOf.map((item) => {
|
559
562
|
return item && this.getTypeFromSchema(item);
|
560
563
|
}).filter((item) => {
|
561
|
-
return item && item !==
|
564
|
+
return item && item !== __privateGet(this, _unknownReturn, unknownReturn_get);
|
562
565
|
})
|
563
566
|
});
|
564
567
|
if (schemaWithoutAllOf.properties) {
|
@@ -648,7 +651,14 @@ getBaseTypeFromSchema_fn = function(_schema, baseName) {
|
|
648
651
|
if (schema.format === "binary") {
|
649
652
|
return factory2__namespace.createTypeReferenceNode("Blob", []);
|
650
653
|
}
|
651
|
-
return
|
654
|
+
return __privateGet(this, _unknownReturn, unknownReturn_get);
|
655
|
+
};
|
656
|
+
_unknownReturn = new WeakSet();
|
657
|
+
unknownReturn_get = function() {
|
658
|
+
if (this.options.unknownType === "any") {
|
659
|
+
return factory2__namespace.keywordTypeNodes.any;
|
660
|
+
}
|
661
|
+
return factory2__namespace.keywordTypeNodes.unknown;
|
652
662
|
};
|
653
663
|
|
654
664
|
// src/TypeBuilder.ts
|
@@ -732,19 +742,23 @@ function printCombinedSchema2(name, operation, schemas) {
|
|
732
742
|
})
|
733
743
|
});
|
734
744
|
}
|
735
|
-
const namespaceNode = factory2__namespace.
|
745
|
+
const namespaceNode = factory2__namespace.createTypeAliasDeclaration({
|
736
746
|
name: operation.method === "get" ? `${name}Query` : `${name}Mutation`,
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
747
|
+
type: factory2__namespace.createTypeLiteralNode(
|
748
|
+
Object.keys(properties).map((key) => {
|
749
|
+
const type = properties[key];
|
750
|
+
if (!type) {
|
751
|
+
return void 0;
|
752
|
+
}
|
753
|
+
return factory2__namespace.createPropertySignature(
|
754
|
+
{
|
755
|
+
name: transformers2__default.default.pascalCase(key),
|
756
|
+
type
|
757
|
+
}
|
758
|
+
);
|
759
|
+
}).filter(Boolean)
|
760
|
+
),
|
761
|
+
modifiers: [factory2__namespace.modifiers.export]
|
748
762
|
});
|
749
763
|
return parser.print(namespaceNode);
|
750
764
|
}
|
@@ -790,4 +804,4 @@ exports.definePlugin = definePlugin;
|
|
790
804
|
exports.pluginKey = pluginKey;
|
791
805
|
exports.pluginName = pluginName;
|
792
806
|
//# sourceMappingURL=out.js.map
|
793
|
-
//# sourceMappingURL=chunk-
|
807
|
+
//# sourceMappingURL=chunk-WM64J24S.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/Mutation.tsx","../src/TypeBuilder.ts","../src/TypeGenerator.ts","../src/plugin.ts","../src/OperationGenerator.tsx","../src/components/Oas.tsx","../src/components/Query.tsx"],"names":["transformers","print","factory","File","usePlugin","usePluginManager","useOas","useOperation","useOperationFile","useOperationName","useSchemas","Generator","keywordTypeNodes","Template","pluginKey","Fragment","jsx","jsxs","options","node","path","printCombinedSchema"],"mappings":"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","sourcesContent":["import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport * as factory from '@kubb/parser/factory'\nimport { File, usePlugin, usePluginManager } from '@kubb/react'\nimport { useOas, useOperation, useOperationFile, useOperationName, useSchemas } from '@kubb/swagger/hooks'\n\nimport { TypeBuilder } from '../TypeBuilder.ts'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\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 builder: TypeBuilder\n}\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 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 Mutation({\n builder,\n}: Props): ReactNode {\n const { source } = builder.build()\n\n return (\n <>\n {source}\n </>\n )\n}\n\ntype FileProps = {\n mode: KubbFile.Mode\n}\n\nMutation.File = function({ mode }: FileProps): ReactNode {\n const { options } = usePlugin<PluginOptions>()\n\n const schemas = useSchemas()\n const pluginManager = usePluginManager()\n const oas = useOas()\n const file = useOperationFile()\n const factoryName = useOperationName({ type: 'type' })\n const operation = useOperation()\n\n const builder = new TypeBuilder(options, { oas, pluginManager })\n .add(schemas.pathParams)\n .add(schemas.queryParams)\n .add(schemas.headerParams)\n .add(schemas.response)\n .add(schemas.request)\n .add(schemas.errors)\n\n const { source, imports } = builder.build()\n\n return (\n <>\n <File<FileMeta>\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n >\n {mode === 'directory' && imports.map((item, index) => {\n return <File.Import key={index} root={file.path} {...item} />\n })}\n <File.Source>\n {source}\n {printCombinedSchema(factoryName, operation, schemas)}\n </File.Source>\n </File>\n </>\n )\n}\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport { OasBuilder } from '@kubb/swagger'\nimport { refsSorter } from '@kubb/swagger/utils'\n\nimport { TypeGenerator } from './TypeGenerator.ts'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ImportMeta } from '@kubb/swagger'\nimport type { PluginOptions } from './types.ts'\n\nexport class TypeBuilder extends OasBuilder<PluginOptions['resolvedOptions']> {\n build(name?: string): Required<Pick<KubbFile.File, 'imports' | 'source'>> {\n const importMeta: ImportMeta[] = []\n const codes: string[] = []\n\n const generated = this.items\n .filter((operationSchema) => (name ? operationSchema.name === name : true))\n .sort(transformers.nameSorter)\n .map((operationSchema) => {\n const generator = new TypeGenerator(this.options, this.context)\n const required = Array.isArray(operationSchema.schema?.required) ? !!operationSchema.schema.required.length : !!operationSchema.schema?.required\n\n const sources = generator.build({\n schema: operationSchema.schema,\n baseName: operationSchema.name,\n description: operationSchema.description,\n keysToOmit: operationSchema.keysToOmit,\n optional: !required && !!operationSchema.name.includes('Params'),\n })\n\n importMeta.push(...generator.imports)\n\n return {\n import: {\n refs: generator.refs,\n name: operationSchema.name,\n },\n sources,\n }\n })\n .sort(refsSorter)\n\n generated.forEach((item) => {\n codes.push(print(item.sources))\n })\n\n const imports: KubbFile.Import[] = importMeta.map((item) => {\n return {\n name: [item.ref.propertyName],\n path: item.path,\n isTypeOnly: item.isTypeOnly,\n }\n })\n\n return {\n imports,\n source: transformers.combineCodes(codes),\n }\n }\n}\n","import { Generator } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\nimport { getUniqueName } from '@kubb/core/utils'\nimport * as factory from '@kubb/parser/factory'\nimport { keywordTypeNodes } from '@kubb/parser/factory'\nimport { getSchemaFactory, isReference } from '@kubb/swagger/utils'\n\nimport { pluginKey } from './plugin.ts'\n\nimport type { PluginManager } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\nimport type { ImportMeta, Refs } from '@kubb/swagger'\nimport type { Oas, OasTypes, OpenAPIV3, OpenAPIV3_1 } from '@kubb/swagger/oas'\nimport type { PluginOptions } from './types.ts'\n\n// based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n\ntype Context = {\n oas: Oas\n pluginManager: PluginManager\n}\n\nexport class TypeGenerator extends Generator<PluginOptions['resolvedOptions'], Context> {\n refs: Refs = {}\n imports: ImportMeta[] = []\n\n extraNodes: ts.Node[] = []\n\n aliases: ts.TypeAliasDeclaration[] = []\n\n // Keep track of already used type aliases\n #usedAliasNames: Record<string, number> = {}\n\n build({\n schema,\n optional,\n baseName,\n description,\n keysToOmit,\n }: {\n schema: OasTypes.SchemaObject\n baseName: string\n description?: string\n optional?: boolean\n keysToOmit?: string[]\n }): ts.Node[] {\n const nodes: ts.Node[] = []\n let type = this.getTypeFromSchema(schema, baseName)\n\n if (!type) {\n return this.extraNodes\n }\n\n if (optional) {\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: this.context.pluginManager.resolveName({ name: baseName, pluginKey, type: 'type' }),\n type: keysToOmit?.length ? factory.createOmitDeclaration({ keys: keysToOmit, type, nonNullable: true }) : type,\n })\n\n if (description) {\n nodes.push(\n factory.appendJSDocToNode({\n node,\n comments: [`@description ${transformers.trim(description)}`],\n }),\n )\n } else {\n nodes.push(node)\n }\n\n // filter out if the export name is the same as one that we already defined in extraNodes(see enum)\n const filterdNodes = nodes.filter(\n (node: ts.Node) =>\n !this.extraNodes.some(\n (extraNode: ts.Node) => (extraNode as ts.TypeAliasDeclaration)?.name?.escapedText === (node as ts.TypeAliasDeclaration)?.name?.escapedText,\n ),\n )\n\n return [...this.extraNodes, ...filterdNodes]\n }\n\n /**\n * Creates a type node from a given schema.\n * Delegates to getBaseTypeFromSchema internally and\n * optionally adds a union with null.\n */\n getTypeFromSchema(schema?: OasTypes.SchemaObject, name?: string): ts.TypeNode | null {\n const type = this.#getBaseTypeFromSchema(schema, name)\n\n if (!type) {\n return null\n }\n\n if (schema && !schema.nullable) {\n return type\n }\n\n return factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.null] })\n }\n\n /**\n * Recursively creates a type literal with the given props.\n */\n #getTypeFromProperties(baseSchema?: OasTypes.SchemaObject, baseName?: string): ts.TypeNode | null {\n const { optionalType } = this.options\n const properties = baseSchema?.properties || {}\n const required = baseSchema?.required\n const additionalProperties = baseSchema?.additionalProperties\n\n const members: Array<ts.TypeElement | null> = Object.keys(properties).map((name) => {\n const schema = properties[name] as OasTypes.SchemaObject\n\n const isRequired = Array.isArray(required) ? required.includes(name) : !!required\n let type = this.getTypeFromSchema(schema, this.context.pluginManager.resolveName({ name: `${baseName || ''} ${name}`, pluginKey, type: 'type' }))\n\n if (!type) {\n return null\n }\n\n if (!isRequired && ['undefined', 'questionTokenAndUndefined'].includes(optionalType as string)) {\n type = factory.createUnionDeclaration({ nodes: [type, factory.keywordTypeNodes.undefined] })\n }\n const propertySignature = factory.createPropertySignature({\n questionToken: ['questionToken', 'questionTokenAndUndefined'].includes(optionalType as string) && !isRequired,\n name,\n type: type as ts.TypeNode,\n readOnly: schema.readOnly,\n })\n\n return factory.appendJSDocToNode({\n node: propertySignature,\n comments: [\n schema.description ? `@description ${schema.description}` : undefined,\n schema.type ? `@type ${schema.type?.toString()}${isRequired ? '' : ' | undefined'} ${schema.format || ''}` : undefined,\n schema.example ? `@example ${schema.example as string}` : undefined,\n schema.deprecated ? `@deprecated` : undefined,\n schema.default !== undefined && typeof schema.default === 'string' ? `@default '${schema.default}'` : undefined,\n schema.default !== undefined && typeof schema.default !== 'string' ? `@default ${schema.default as string}` : undefined,\n ].filter(Boolean),\n })\n })\n if (additionalProperties) {\n const type = additionalProperties === true ? this.#unknownReturn : this.getTypeFromSchema(additionalProperties as OasTypes.SchemaObject)\n\n if (type) {\n members.push(factory.createIndexSignature(type))\n }\n }\n return factory.createTypeLiteralNode(members.filter(Boolean))\n }\n\n /**\n * Create a type alias for the schema referenced by the given ReferenceObject\n */\n #getRefAlias(obj: OpenAPIV3.ReferenceObject, _baseName?: string) {\n const { $ref } = obj\n let ref = this.refs[$ref]\n\n if (ref) {\n return factory.createTypeReferenceNode(ref.propertyName, undefined)\n }\n\n const originalName = getUniqueName($ref.replace(/.+\\//, ''), this.#usedAliasNames)\n const propertyName = this.context.pluginManager.resolveName({ name: originalName, pluginKey, type: 'type' })\n\n ref = this.refs[$ref] = {\n propertyName,\n originalName,\n }\n\n const fileName = this.context.pluginManager.resolveName({ name: originalName, pluginKey, type: 'file' })\n const path = this.context.pluginManager.resolvePath({ baseName: fileName, pluginKey })\n\n this.imports.push({\n ref,\n path: path || '',\n isTypeOnly: true,\n })\n\n return factory.createTypeReferenceNode(ref.propertyName, undefined)\n }\n\n #getParsedSchema(schema?: OasTypes.SchemaObject) {\n const parsedSchema = getSchemaFactory(this.context.oas)(schema)\n return parsedSchema\n }\n\n /**\n * This is the very core of the OpenAPI to TS conversion - it takes a\n * schema and returns the appropriate type.\n */\n #getBaseTypeFromSchema(\n _schema: OasTypes.SchemaObject | undefined,\n baseName?: string,\n ): ts.TypeNode | null {\n const { schema, version } = this.#getParsedSchema(_schema)\n\n if (!schema) {\n return this.#unknownReturn\n }\n\n if (isReference(schema)) {\n return this.#getRefAlias(schema, baseName)\n }\n\n if (schema.oneOf) {\n // union\n const schemaWithoutOneOf = { ...schema, oneOf: undefined } as OasTypes.SchemaObject\n\n const union = factory.createUnionDeclaration({\n withParentheses: true,\n nodes: schema.oneOf\n .map((item) => {\n return item && this.getTypeFromSchema(item as OasTypes.SchemaObject)\n })\n .filter((item) => {\n return item && item !== this.#unknownReturn\n }) as Array<ts.TypeNode>,\n })\n\n if (schemaWithoutOneOf.properties) {\n return factory.createIntersectionDeclaration({\n nodes: [this.getTypeFromSchema(schemaWithoutOneOf, baseName), union].filter(Boolean),\n })\n }\n\n return union\n }\n\n if (schema.anyOf) {\n const schemaWithoutAnyOf = { ...schema, anyOf: undefined } as OasTypes.SchemaObject\n\n const union = factory.createUnionDeclaration({\n withParentheses: true,\n nodes: schema.anyOf\n .map((item) => {\n return item && this.getTypeFromSchema(item as OasTypes.SchemaObject)\n })\n .filter((item) => {\n return item && item !== this.#unknownReturn\n }) as Array<ts.TypeNode>,\n })\n\n if (schemaWithoutAnyOf.properties) {\n return factory.createIntersectionDeclaration({\n nodes: [this.getTypeFromSchema(schemaWithoutAnyOf, baseName), union].filter(Boolean),\n })\n }\n\n return union\n }\n if (schema.allOf) {\n // intersection/add\n const schemaWithoutAllOf = { ...schema, allOf: undefined } as OasTypes.SchemaObject\n\n const and = factory.createIntersectionDeclaration({\n withParentheses: true,\n nodes: schema.allOf\n .map((item) => {\n return item && this.getTypeFromSchema(item as OasTypes.SchemaObject)\n })\n .filter((item) => {\n return item && item !== this.#unknownReturn\n }) as Array<ts.TypeNode>,\n })\n\n if (schemaWithoutAllOf.properties) {\n return factory.createIntersectionDeclaration({\n nodes: [this.getTypeFromSchema(schemaWithoutAllOf, baseName), and].filter(Boolean),\n })\n }\n\n return and\n }\n\n /**\n * Enum will be defined outside the baseType(hints the baseName check)\n */\n if (schema.enum && baseName) {\n const enumName = getUniqueName(baseName, this.options.usedEnumNames)\n\n let enums: [key: string, value: string | number][] = [...new Set(schema.enum)].map((key) => [key, key])\n\n const extensionEnums: Array<typeof enums> = ['x-enumNames', 'x-enum-varnames']\n .filter(extensionKey => extensionKey in schema)\n .map((extensionKey) =>\n [...new Set(schema[extensionKey as keyof typeof schema] as string[])].map((key, index) => [key, schema.enum?.[index] as string] as const)\n )\n\n if (extensionEnums.length > 0 && extensionEnums[0]) {\n enums = extensionEnums[0]\n }\n\n this.extraNodes.push(\n ...factory.createEnumDeclaration({\n name: transformers.camelCase(enumName),\n typeName: this.context.pluginManager.resolveName({ name: enumName, pluginKey, type: 'type' }),\n enums,\n type: this.options.enumType,\n }),\n )\n return factory.createTypeReferenceNode(this.context.pluginManager.resolveName({ name: enumName, pluginKey, type: 'type' }), undefined)\n }\n\n if (schema.enum) {\n return factory.createUnionDeclaration({\n nodes: schema.enum.map((name) => {\n return factory.createLiteralTypeNode(typeof name === 'number' ? factory.createNumericLiteral(name) : factory.createStringLiteral(`${name}`))\n }) as unknown as Array<ts.TypeNode>,\n })\n }\n\n if ('items' in schema) {\n // items -> array\n const node = this.getTypeFromSchema(schema.items as OasTypes.SchemaObject, baseName)\n if (node) {\n return factory.createArrayTypeNode(node)\n }\n }\n\n /**\n * OpenAPI 3.1\n * @link https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation\n */\n\n if ('prefixItems' in schema) {\n const prefixItems = schema.prefixItems as OasTypes.SchemaObject[]\n\n return factory.createTupleDeclaration({\n nodes: prefixItems.map((item) => {\n // no baseType so we can fall back on an union when using enum\n return this.getTypeFromSchema(item, undefined)\n }) as Array<ts.TypeNode>,\n })\n }\n\n if (schema.properties || schema.additionalProperties) {\n // properties -> literal type\n return this.#getTypeFromProperties(schema, baseName)\n }\n\n /**\n * validate \"const\" property as defined in JSON-Schema-Validation\n *\n * https://json-schema.org/draft/2020-12/json-schema-validation#name-const\n *\n * > 6.1.3. const\n * > The value of this keyword MAY be of any type, including null.\n * > Use of this keyword is functionally equivalent to an \"enum\" (Section 6.1.2) with a single value.\n * > An instance validates successfully against this keyword if its value is equal to the value of the keyword.\n */\n if (version === '3.1' && 'const' in schema) {\n // const keyword takes precendence over the actual type.\n if (schema['const']) {\n if (typeof schema['const'] === 'string') {\n return factory.createLiteralTypeNode(factory.createStringLiteral(schema['const']))\n } else if (typeof schema['const'] === 'number') {\n return factory.createLiteralTypeNode(factory.createNumericLiteral(schema['const']))\n }\n } else {\n return keywordTypeNodes.null\n }\n }\n\n if (schema.type) {\n if (Array.isArray(schema.type)) {\n // TODO remove hardcoded first type, second nullable\n // OPENAPI v3.1.0: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n const [type, nullable] = schema.type as Array<OpenAPIV3_1.NonArraySchemaObjectType>\n\n return factory.createUnionDeclaration({\n nodes: [\n this.getTypeFromSchema(\n {\n ...schema,\n type,\n },\n baseName,\n ),\n nullable ? factory.createLiteralTypeNode(factory.createNull()) : undefined,\n ].filter(Boolean),\n })\n }\n\n if (this.options.dateType === 'date' && ['date', 'date-time'].some((item) => item === schema.format)) {\n return factory.createTypeReferenceNode(factory.createIdentifier('Date'))\n }\n\n // string, boolean, null, number\n if (schema.type in factory.keywordTypeNodes) {\n return factory.keywordTypeNodes[schema.type as keyof typeof factory.keywordTypeNodes]\n }\n }\n\n if (schema.format === 'binary') {\n return factory.createTypeReferenceNode('Blob', [])\n }\n\n return this.#unknownReturn\n }\n\n get #unknownReturn() {\n if (this.options.unknownType === 'any') {\n return factory.keywordTypeNodes.any\n }\n\n return factory.keywordTypeNodes.unknown\n }\n}\n","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 { TypeBuilder } from './TypeBuilder.ts'\n\nimport type { KubbFile, Plugin } from '@kubb/core'\nimport type { PluginOptions as SwaggerPluginOptions } from '@kubb/swagger'\nimport type { OasTypes } from '@kubb/swagger/oas'\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 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 enumType,\n optionalType,\n oasType,\n // keep the used enumnames between TypeBuilder and OperationGenerator per plugin(pluginKey)\n usedEnumNames: {},\n unknownType,\n },\n pre: [swaggerPluginName],\n resolvePath(baseName, directory, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = 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\n const schemas = await swaggerPlugin.api.getSchemas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n const builder = new TypeBuilder(this.plugin.options, { oas, pluginManager: this.pluginManager })\n\n builder.add(\n Object.entries(schemas).map(([name, schema]: [string, OasTypes.SchemaObject]) => ({ name, schema })),\n )\n\n if (mode === 'directory') {\n const mapFolderSchema = async ([name]: [string, OasTypes.SchemaObject]) => {\n const baseName = `${this.resolveName({ name, pluginKey: this.plugin.key, type: 'file' })}.ts` as const\n const resolvedPath = this.resolvePath({ baseName, pluginKey: this.plugin.key })\n const { source, imports } = builder.build(name)\n\n if (!resolvedPath) {\n return null\n }\n\n return this.addFile({\n path: resolvedPath,\n baseName,\n source,\n imports: imports.map(item => ({ ...item, root: resolvedPath })),\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n }\n\n const promises = Object.entries(schemas).map(mapFolderSchema)\n\n await Promise.all(promises)\n }\n\n if (mode === 'file') {\n const resolvedPath = this.resolvePath({ baseName: '', pluginKey: this.plugin.key })\n const { source } = builder.build()\n\n if (!resolvedPath) {\n return\n }\n\n await this.addFile({\n path: resolvedPath,\n baseName: output.path as KubbFile.BaseName,\n source,\n imports: [],\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n }\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 files = await operationGenerator.build()\n await this.addFile(...files)\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'\n\nimport { Mutation } from './components/Mutation.tsx'\nimport { Oas } from './components/Oas.tsx'\nimport { Query } from './components/Query.tsx'\n\nimport type { AppContextProps } from '@kubb/react'\nimport type { OperationMethodResult, OperationSchemas } 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(): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin } = this.context\n\n if (!plugin.options.oasType) {\n return null\n }\n\n const root = createRoot<AppContextProps>({ logger: pluginManager.logger })\n root.render(\n <Oas.File name=\"oas\" typeName=\"Oas\" />,\n { meta: { oas, pluginManager, plugin } },\n )\n\n return root.files\n }\n\n async get(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode = 'directory' } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n root.render(\n <Query.File mode={mode} />,\n { meta: { oas, pluginManager, plugin: { ...plugin, options }, schemas, operation } },\n )\n\n return root.files\n }\n\n async post(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode = 'directory' } = this.context\n\n const root = createRoot<AppContextProps<PluginOptions['appMeta']>>({ logger: pluginManager.logger })\n root.render(\n <Mutation.File mode={mode} />,\n { meta: { oas, pluginManager, plugin: { ...plugin, options }, schemas, operation } },\n )\n\n return root.files\n }\n\n async put(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, schemas, options)\n }\n async patch(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, schemas, options)\n }\n async delete(operation: Operation, schemas: OperationSchemas, options: PluginOptions['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, schemas, options)\n }\n}\n","import { File, Type, usePlugin } from '@kubb/react'\nimport { useFile } 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 Oas({\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\nOas.File = function({ name, typeName, templates = defaultTemplates }: FileProps): ReactNode {\n const { key: pluginKey } = usePlugin<PluginOptions>()\n const file = useFile({ name, pluginKey })\n\n const Template = templates.default\n\n return (\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 <Oas Template={Template} name={name} typeName={typeName} />\n </File.Source>\n </File>\n )\n}\n\nOas.templates = defaultTemplates\n","import transformers from '@kubb/core/transformers'\nimport { print } from '@kubb/parser'\nimport * as factory from '@kubb/parser/factory'\nimport { File, usePlugin, usePluginManager } from '@kubb/react'\nimport { useOas, useOperation, useOperationFile, useOperationName, useSchemas } from '@kubb/swagger/hooks'\n\nimport { TypeBuilder } from '../TypeBuilder.ts'\n\nimport type { KubbFile } from '@kubb/core'\nimport type { ts } from '@kubb/parser'\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 builder: TypeBuilder\n}\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 Query({\n builder,\n}: Props): ReactNode {\n const { source } = builder.build()\n\n return (\n <>\n {source}\n </>\n )\n}\n\ntype FileProps = {\n mode: KubbFile.Mode\n}\n\nQuery.File = function({ mode }: FileProps): ReactNode {\n const { options } = usePlugin<PluginOptions>()\n\n const schemas = useSchemas()\n const pluginManager = usePluginManager()\n const oas = useOas()\n const file = useOperationFile()\n const factoryName = useOperationName({ type: 'type' })\n const operation = useOperation()\n\n const builder = new TypeBuilder(options, { oas, pluginManager })\n .add(schemas.pathParams)\n .add(schemas.queryParams)\n .add(schemas.headerParams)\n .add(schemas.response)\n .add(schemas.errors)\n\n const { source, imports } = builder.build()\n\n return (\n <>\n <File<FileMeta>\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n >\n {mode === 'directory' && imports.map((item, index) => {\n return <File.Import key={index} root={file.path} {...item} />\n })}\n <File.Source>\n {source}\n {printCombinedSchema(factoryName, operation, schemas)}\n </File.Source>\n </File>\n </>\n )\n}\n"]}
|
package/dist/components.cjs
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
-
var
|
3
|
+
var chunkWM64J24S_cjs = require('./chunk-WM64J24S.cjs');
|
4
4
|
|
5
5
|
|
6
6
|
|
7
7
|
Object.defineProperty(exports, "Mutation", {
|
8
8
|
enumerable: true,
|
9
|
-
get: function () { return
|
9
|
+
get: function () { return chunkWM64J24S_cjs.Mutation; }
|
10
10
|
});
|
11
11
|
Object.defineProperty(exports, "Oas", {
|
12
12
|
enumerable: true,
|
13
|
-
get: function () { return
|
13
|
+
get: function () { return chunkWM64J24S_cjs.Oas; }
|
14
14
|
});
|
15
15
|
Object.defineProperty(exports, "Query", {
|
16
16
|
enumerable: true,
|
17
|
-
get: function () { return
|
17
|
+
get: function () { return chunkWM64J24S_cjs.Query; }
|
18
18
|
});
|
19
19
|
//# sourceMappingURL=out.js.map
|
20
20
|
//# sourceMappingURL=components.cjs.map
|
package/dist/components.d.cts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { OasBuilder } from '@kubb/swagger';
|
2
2
|
import { KubbFile } from '@kubb/core';
|
3
|
-
import { P as PluginOptions } from './types-
|
3
|
+
import { P as PluginOptions } from './types-Y_otwxvd.cjs';
|
4
4
|
import { ReactNode } from 'react';
|
5
5
|
import { OasTypes } from '@kubb/swagger/oas';
|
6
6
|
|
package/dist/components.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { OasBuilder } from '@kubb/swagger';
|
2
2
|
import { KubbFile } from '@kubb/core';
|
3
|
-
import { P as PluginOptions } from './types-
|
3
|
+
import { P as PluginOptions } from './types-Y_otwxvd.js';
|
4
4
|
import { ReactNode } from 'react';
|
5
5
|
import { OasTypes } from '@kubb/swagger/oas';
|
6
6
|
|
package/dist/components.js
CHANGED
package/dist/index.cjs
CHANGED
@@ -2,23 +2,25 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
var
|
5
|
+
var chunkWM64J24S_cjs = require('./chunk-WM64J24S.cjs');
|
6
6
|
|
7
|
-
// src/index.ts
|
8
|
-
var src_default = chunkCMZLMWOU_cjs.definePlugin;
|
9
7
|
|
8
|
+
|
9
|
+
Object.defineProperty(exports, "default", {
|
10
|
+
enumerable: true,
|
11
|
+
get: function () { return chunkWM64J24S_cjs.definePlugin; }
|
12
|
+
});
|
10
13
|
Object.defineProperty(exports, "definePlugin", {
|
11
14
|
enumerable: true,
|
12
|
-
get: function () { return
|
15
|
+
get: function () { return chunkWM64J24S_cjs.definePlugin; }
|
13
16
|
});
|
14
17
|
Object.defineProperty(exports, "pluginKey", {
|
15
18
|
enumerable: true,
|
16
|
-
get: function () { return
|
19
|
+
get: function () { return chunkWM64J24S_cjs.pluginKey; }
|
17
20
|
});
|
18
21
|
Object.defineProperty(exports, "pluginName", {
|
19
22
|
enumerable: true,
|
20
|
-
get: function () { return
|
23
|
+
get: function () { return chunkWM64J24S_cjs.pluginName; }
|
21
24
|
});
|
22
|
-
exports.default = src_default;
|
23
25
|
//# sourceMappingURL=out.js.map
|
24
26
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|