From 39b930d0eeb908317aef178dbf83ce21231cf1a7 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Fri, 24 Aug 2018 11:38:24 +0300 Subject: [PATCH] fix: fix oneOf/anyOf titles fixes #618, #621 --- src/services/models/Schema.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/services/models/Schema.ts b/src/services/models/Schema.ts index a53ad18379..8e1d377747 100644 --- a/src/services/models/Schema.ts +++ b/src/services/models/Schema.ts @@ -161,13 +161,24 @@ export class SchemaModel { parser, { // merge base schema into each of oneOf's subschemas - allOf: [variant, { ...this.schema, oneOf: undefined, anyOf: undefined }], + ...variant, + allOf: [{ ...this.schema, oneOf: undefined, anyOf: undefined }], } as OpenAPISchema, this.pointer + '/oneOf/' + idx, this.options, ), ); - this.displayType = this.oneOf.map(schema => schema.displayType).join(' or '); + this.displayType = this.oneOf + .map(schema => { + let name = + schema.typePrefix + + (schema.title ? `${schema.title} (${schema.displayType})` : schema.displayType); + if (name.indexOf(' or ') > -1) { + name = `(${name})`; + } + return name; + }) + .join(' or '); } private initDiscriminator(