From 5fdfa31b1a1497a552c9f19c48fe006da23f07eb Mon Sep 17 00:00:00 2001 From: Akash Gupta <64877812+akashrpo@users.noreply.github.com> Date: Tue, 21 Jan 2025 17:06:42 +0530 Subject: [PATCH] feat: include parameter details in Swift docstrings (#118) --- src/generators/swift/swift.ts | 5 +++++ src/generators/swift/templates/analytics.swift.hbs | 4 +--- .../swift/templates/functionDocumentation.hbs | 13 +++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 src/generators/swift/templates/functionDocumentation.hbs diff --git a/src/generators/swift/swift.ts b/src/generators/swift/swift.ts index bb0586e7..44dcc685 100644 --- a/src/generators/swift/swift.ts +++ b/src/generators/swift/swift.ts @@ -2,6 +2,7 @@ import { Type, Schema } from '../ast.js'; import Handlebars from 'handlebars'; import { Generator, BasePropertyContext, GeneratorClient } from '../gen.js'; import lodash from 'lodash'; +import { registerPartial } from '../../templates.js'; const { camelCase, upperFirst } = lodash; @@ -61,6 +62,10 @@ export const swift: Generator< allowedIdentifierChars: 'A-Za-z0-9_$', }, setup: async () => { + await registerPartial( + 'generators/swift/templates/functionDocumentation.hbs', + 'functionDocumentation', + ); Handlebars.registerHelper('propertiesDictionary', generatePropertiesDictionary); Handlebars.registerHelper('functionCall', generateFunctionCall); Handlebars.registerHelper('functionSignature', generateFunctionSignature); diff --git a/src/generators/swift/templates/analytics.swift.hbs b/src/generators/swift/templates/analytics.swift.hbs index 058c2c92..af6a0328 100644 --- a/src/generators/swift/templates/analytics.swift.hbs +++ b/src/generators/swift/templates/analytics.swift.hbs @@ -13,9 +13,7 @@ class RudderTyperAnalytics { {{functionCall "RudderTyperAnalytics" functionName properties "options" "RSOption()"}} } - {{#if functionDescription}} - /// {{functionDescription}} - {{/if}} + {{> functionDocumentation }} static func {{functionSignature functionName properties true}} { {{indent " " (propertiesDictionary properties)}} diff --git a/src/generators/swift/templates/functionDocumentation.hbs b/src/generators/swift/templates/functionDocumentation.hbs new file mode 100644 index 00000000..fccf56d5 --- /dev/null +++ b/src/generators/swift/templates/functionDocumentation.hbs @@ -0,0 +1,13 @@ +/** + {{#if functionDescription}} + {{functionDescription}} + {{else}} + Fires a '{{functionName}}' track call. + {{/if}} + + - Parameters: + {{#each properties}} + - {{name}}: {{#if isRequired}}{{type}} (required){{else}}{{type}} (optional){{/if}}{{#if description}} - {{description}}{{/if}} + {{/each}} + - options: Event-level options (optional) + */