( key: string, settings: Settings, mergedSettings: Settings, )
| 246 | * Always returns a value (never undefined) - falls back to default if not set anywhere |
| 247 | */ |
| 248 | export function getSettingValue( |
| 249 | key: string, |
| 250 | settings: Settings, |
| 251 | mergedSettings: Settings, |
| 252 | ): boolean { |
| 253 | const definition = getSettingDefinition(key); |
| 254 | if (!definition) { |
| 255 | return false; // Default fallback for invalid settings |
| 256 | } |
| 257 | |
| 258 | const value = getEffectiveValue(key, settings, mergedSettings); |
| 259 | // Ensure we return a boolean value, converting from the more general type |
| 260 | if (typeof value === 'boolean') { |
| 261 | return value; |
| 262 | } |
| 263 | // Fall back to default value, ensuring it's a boolean |
| 264 | const defaultValue = definition.default; |
| 265 | if (typeof defaultValue === 'boolean') { |
| 266 | return defaultValue; |
| 267 | } |
| 268 | return false; // Final fallback |
| 269 | } |
| 270 | |
| 271 | /** |
| 272 | * Check if a setting value is modified from its default |
no test coverage detected