diff --git a/packages/generator/src/openapi/fileGenerator.ts b/packages/generator/src/openapi/fileGenerator.ts index 3fad4cc..4985723 100644 --- a/packages/generator/src/openapi/fileGenerator.ts +++ b/packages/generator/src/openapi/fileGenerator.ts @@ -33,6 +33,7 @@ export default class FileGenerator { eq: (a: unknown, b: unknown) => a == b, ne: (a: unknown, b: unknown) => a != b, coalesce: (...args) => Array.prototype.find.call(args, x => !!x) as string, + inline: (x: string) => (x ? x.replaceAll(/\r?\n/g, " ").trim() : ""), }); } diff --git a/packages/generator/src/openapi/parsers/openApi3Parser.ts b/packages/generator/src/openapi/parsers/openApi3Parser.ts index 890e935..09e3709 100644 --- a/packages/generator/src/openapi/parsers/openApi3Parser.ts +++ b/packages/generator/src/openapi/parsers/openApi3Parser.ts @@ -77,7 +77,7 @@ export default class OpenApi3Parser implements ApiModel { return this.setTypeReference(name, definition.type); } - if (definition.oneOf || definition.allOf) { + if (definition.oneOf || definition.anyOf || definition.allOf) { return this.parseObject(name, definition); } @@ -105,6 +105,11 @@ export default class OpenApi3Parser implements ApiModel { if (definition.oneOf) { return this.parseOneOfObject(name, definition); } + if (definition.anyOf) { + // handle anyOf the same as oneOf + definition.oneOf = definition.anyOf; + return this.parseOneOfObject(name, definition); + } return this.parseObjectWithProperties(name, definition); } diff --git a/packages/generator/src/openapi/templates/zod/objectEntityContent.hbs b/packages/generator/src/openapi/templates/zod/objectEntityContent.hbs index ef8c8e7..92c5af3 100644 --- a/packages/generator/src/openapi/templates/zod/objectEntityContent.hbs +++ b/packages/generator/src/openapi/templates/zod/objectEntityContent.hbs @@ -58,7 +58,7 @@ z.preprocess(arg => (typeof arg == "string" || arg instanceof Date ? new Date(ar {{~/if}} {{#if description}} - .describe("{{description}}") + .describe("{{inline description}}") {{~/if}} , {{/inline}}