MCPcopy Create free account
hub / github.com/CatMuse/HiNote / normalizeSettings

Function normalizeSettings

src/settings/SettingsMigration.ts:10–36  ·  view source on GitHub ↗
(raw: SettingsData, existingData?: SettingsData)

Source from the content-addressed store, hash-verified

8}
9
10export function normalizeSettings(raw: SettingsData, existingData?: SettingsData): PluginSettings {
11 const defaults = createDefaultSettings();
12 const source = raw ?? {};
13 const existing = existingData ?? {};
14
15 const settings: PluginSettings = {
16 ...defaults,
17 ...source,
18 export: {
19 ...defaults.export,
20 ...(source.export ?? {})
21 },
22 ai: normalizeAISettings(source.ai, defaults.ai),
23 regexRules: Array.isArray(source.regexRules)
24 ? source.regexRules
25 : defaults.regexRules,
26 excludePatterns: source.excludePatterns ?? defaults.excludePatterns,
27 useCustomPattern: source.useCustomPattern ?? defaults.useCustomPattern,
28 showCommentWidget: source.showCommentWidget ?? defaults.showCommentWidget
29 };
30
31 if (existing['flashcard-license'] ?? source['flashcard-license']) {
32 settings['flashcard-license'] = existing['flashcard-license'] ?? source['flashcard-license'];
33 }
34
35 return settings;
36}
37
38export function migrateSettings(raw: SettingsData, existingData?: SettingsData): PluginSettings {
39 return normalizeSettings(raw, existingData);

Callers 2

saveSettingsMethod · 0.90
migrateSettingsFunction · 0.85

Calls 2

createDefaultSettingsFunction · 0.85
normalizeAISettingsFunction · 0.85

Tested by

no test coverage detected