From 5d2064134b90ccd07bc131767142a0a29cdcb48b Mon Sep 17 00:00:00 2001 From: Jakob Scheid Date: Tue, 26 May 2026 12:21:54 +0200 Subject: [PATCH] feat(settings): Make setting default value optional --- .../settings/utils/settingsValidator.js | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/features/settings/utils/settingsValidator.js b/src/features/settings/utils/settingsValidator.js index c699985..005024a 100644 --- a/src/features/settings/utils/settingsValidator.js +++ b/src/features/settings/utils/settingsValidator.js @@ -57,23 +57,21 @@ function validateEntry(entry, path) { assertString(entry.name, `${path}.name`); assertString(entry.i18n, `${path}.i18n`); - if (entry.default === undefined) { - throw new Error(`[settings] "${path}.default" is required`); - } - - if (entry.type === 'bool' && typeof entry.default !== 'boolean') { - throw new Error(`[settings] "${path}.default" must be a boolean`); - } - if (entry.type === 'number' && typeof entry.default !== 'number') { - throw new Error(`[settings] "${path}.default" must be a number`); - } - if (entry.type === 'string' && typeof entry.default !== 'string') { - throw new Error(`[settings] "${path}.default" must be a string`); - } - if (entry.type === 'selection') { - validateSelectionOptions(entry.options, path); - if (typeof entry.allowMultiple !== 'boolean') { - throw new Error(`[settings] "${path}.allowMultiple" must be a boolean`); + if (entry.default !== undefined) { + if (entry.type === 'bool' && typeof entry.default !== 'boolean') { + throw new Error(`[settings] "${path}.default" must be a boolean`); + } + if (entry.type === 'number' && typeof entry.default !== 'number') { + throw new Error(`[settings] "${path}.default" must be a number`); + } + if (entry.type === 'string' && typeof entry.default !== 'string') { + throw new Error(`[settings] "${path}.default" must be a string`); + } + if (entry.type === 'selection') { + validateSelectionOptions(entry.options, path); + if (typeof entry.allowMultiple !== 'boolean') { + throw new Error(`[settings] "${path}.allowMultiple" must be a boolean`); + } } } }