From 547bc241daa743162fb9ac84bc54cd9db369bca0 Mon Sep 17 00:00:00 2001 From: "johannes.vos" Date: Tue, 26 May 2026 14:51:33 +0200 Subject: [PATCH] feat(settings): use type field as discriminant in JSDoc type definitions --- src/features/settings/types/settingsConfig.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/features/settings/types/settingsConfig.js b/src/features/settings/types/settingsConfig.js index c7a4135..db6db07 100644 --- a/src/features/settings/types/settingsConfig.js +++ b/src/features/settings/types/settingsConfig.js @@ -68,4 +68,13 @@ limitations under the License. /** * @typedef {Object} SettingsConfig * @property {SettingConfigEntry[]} contents + */ +/** + * @typedef {{ type: 'bool', name: string, i18n: string, description?: string, default: boolean }} BoolSettingConfig + * @typedef {{ type: 'number', name: string, i18n: string, description?: string, default: number }} NumberSettingConfig + * @typedef {{ type: 'string', name: string, i18n: string, description?: string, default: string }} StringSettingConfig + * @typedef {{ type: 'selection', name: string, i18n: string, description?: string, default: string | string[], allowMultiple?: boolean, options: SelectionOption[] }} SelectionSettingConfig + * @typedef {{ type: 'section', name: string, i18n?: string, description?: string, content: SettingConfigEntry[] }} SectionSettingConfig + * @typedef {BoolSettingConfig | NumberSettingConfig | StringSettingConfig | SelectionSettingConfig | SectionSettingConfig} SettingConfigEntry + * @typedef {{ contents: SettingConfigEntry[] }} SettingsConfig */ \ No newline at end of file