mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-03 10:21:06 +05:30
fix(migration): handle already-v5 settings and ensure 'failed' branch writes v5 marker
This commit is contained in:
@@ -10,7 +10,16 @@ export const v4SettingsSchema = z.object({
|
||||
snippets: z.array(z.unknown()).default([]),
|
||||
});
|
||||
|
||||
const v5OnlyFields = ['updateChannel', 'autoCheckUpdates', 'firstRun'];
|
||||
|
||||
function isAlreadyV5(data: unknown): boolean {
|
||||
if (!data || typeof data !== 'object') return false;
|
||||
if ((data as Record<string, unknown>)['migration.version'] === 5) return true;
|
||||
return v5OnlyFields.some((f) => f in (data as Record<string, unknown>));
|
||||
}
|
||||
|
||||
export function migrateV4ToV5(v4: unknown): z.infer<typeof settingsSchema> {
|
||||
if (isAlreadyV5(v4)) return v4 as z.infer<typeof settingsSchema>;
|
||||
const parsed = v4SettingsSchema.parse(v4);
|
||||
const defaults = settingsSchema.parse({});
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user