From e3a87488fc52346aaa7ef355cdeb1c2e96068730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Magyar?= Date: Wed, 9 Feb 2022 13:22:43 +0100 Subject: [PATCH] generate JSDoc style comments --- .../typescript/TypeScriptRenderer.ts | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/generators/typescript/TypeScriptRenderer.ts b/src/generators/typescript/TypeScriptRenderer.ts index 33344ecdd6..0addcf9958 100644 --- a/src/generators/typescript/TypeScriptRenderer.ts +++ b/src/generators/typescript/TypeScriptRenderer.ts @@ -156,17 +156,24 @@ ${renderedLines} renderProperty(propertyName: string, property: CommonModel, type: PropertyType = PropertyType.property): string { const formattedPropertyName = this.nameProperty(propertyName, property); + + const desc = property.getFromOriginalInput('description')?.trim(); + const examples = property.getFromOriginalInput('examples'); + const formattedExamples = `@example ${examples?.join ? examples.join(', ') : examples}` + const doc = this.renderComments(`${desc || ''}\n${examples ? formattedExamples : ''}`.trim()); + const formattedDoc = desc || examples ? `${doc}\n` : ''; + let signature: string; switch (type) { - case PropertyType.property: - signature = this.renderTypeSignature(property, { isRequired: this.model.isRequired(propertyName) }); - return `${formattedPropertyName}${signature};`; - case PropertyType.additionalProperty: - case PropertyType.patternProperties: - signature = this.renderType(property); - return `${formattedPropertyName}?: Map;`; - default: - return ''; + case PropertyType.property: + signature = this.renderTypeSignature(property, { isRequired: this.model.isRequired(propertyName) }); + return `${formattedDoc}${formattedPropertyName}${signature};`; + case PropertyType.additionalProperty: + case PropertyType.patternProperties: + signature = this.renderType(property); + return `${formattedPropertyName}?: Map;`; + default: + return ''; } }