MCPcopy
hub / github.com/callumalpass/tasknotes / buildSettingsFromLoadedData

Function buildSettingsFromLoadedData

src/settings/settingsPersistence.ts:196–246  ·  view source on GitHub ↗
(data: LoadedSettingsData | null)

Source from the content-addressed store, hash-verified

194}
195
196export function buildSettingsFromLoadedData(data: LoadedSettingsData | null): SettingsBuildResult {
197 const loadedData = migrateLoadedSettingsData(data);
198 const migratedLegacyCustomFilenameTemplate =
199 data?.taskFilenameFormat !== "custom" &&
200 data?.customFilenameTemplate === "{title}" &&
201 loadedData?.customFilenameTemplate === "{{title}}";
202 const migratedParentNoteTaskCreationDefault =
203 shouldMigrateParentNoteTaskCreationDefault(loadedData);
204
205 const settings: TaskNotesSettings = {
206 ...DEFAULT_SETTINGS,
207 ...loadedData,
208 fieldMapping: {
209 ...DEFAULT_SETTINGS.fieldMapping,
210 ...(loadedData?.fieldMapping || {}),
211 },
212 taskCreationDefaults: buildTaskCreationDefaults(loadedData?.taskCreationDefaults),
213 calendarViewSettings: {
214 ...DEFAULT_SETTINGS.calendarViewSettings,
215 ...(loadedData?.calendarViewSettings || {}),
216 },
217 commandFileMapping: {
218 ...DEFAULT_SETTINGS.commandFileMapping,
219 ...(loadedData?.commandFileMapping || {}),
220 },
221 icsIntegration: {
222 ...DEFAULT_SETTINGS.icsIntegration,
223 ...(loadedData?.icsIntegration || {}),
224 },
225 nlpTriggers: {
226 ...DEFAULT_SETTINGS.nlpTriggers,
227 ...(loadedData?.nlpTriggers || {}),
228 triggers: loadedData?.nlpTriggers?.triggers || DEFAULT_SETTINGS.nlpTriggers.triggers,
229 },
230 modalFieldsConfig: initializeFieldConfig(
231 loadedData?.modalFieldsConfig,
232 loadedData?.userFields
233 ),
234 customStatuses: loadedData?.customStatuses || DEFAULT_SETTINGS.customStatuses,
235 customPriorities: loadedData?.customPriorities || DEFAULT_SETTINGS.customPriorities,
236 savedViews: loadedData?.savedViews || DEFAULT_SETTINGS.savedViews,
237 };
238
239 return {
240 settings,
241 shouldPersistMigratedSettings:
242 hasMissingMigratedSettings(loadedData) ||
243 migratedLegacyCustomFilenameTemplate ||
244 migratedParentNoteTaskCreationDefault,
245 };
246}
247
248export function buildSettingsDataForSave(
249 loadedData: Record<string, unknown> | null | undefined,

Tested by

no test coverage detected