diff --git a/src/config/legacy.migrations.part-1.ts b/src/config/legacy.migrations.part-1.ts index 9c6d71287fc..8bdecabe8c1 100644 --- a/src/config/legacy.migrations.part-1.ts +++ b/src/config/legacy.migrations.part-1.ts @@ -227,43 +227,39 @@ export const LEGACY_CONFIG_MIGRATIONS_PART_1: LegacyConfigMigration[] = [ entry: Record; pathPrefix: string; }) => { + const migrateCommonStreamingMode = ( + resolveMode: (entry: Record) => string, + ) => { + const hasLegacyStreamMode = params.entry.streamMode !== undefined; + const legacyStreaming = params.entry.streaming; + if (!hasLegacyStreamMode && typeof legacyStreaming !== "boolean") { + return false; + } + const resolved = resolveMode(params.entry); + params.entry.streaming = resolved; + if (hasLegacyStreamMode) { + delete params.entry.streamMode; + changes.push( + `Moved ${params.pathPrefix}.streamMode → ${params.pathPrefix}.streaming (${resolved}).`, + ); + } + if (typeof legacyStreaming === "boolean") { + changes.push(`Normalized ${params.pathPrefix}.streaming boolean → enum (${resolved}).`); + } + return true; + }; + const hasLegacyStreamMode = params.entry.streamMode !== undefined; const legacyStreaming = params.entry.streaming; const legacyNativeStreaming = params.entry.nativeStreaming; if (params.provider === "telegram") { - if (!hasLegacyStreamMode && typeof legacyStreaming !== "boolean") { - return; - } - const resolved = resolveTelegramPreviewStreamMode(params.entry); - params.entry.streaming = resolved; - if (hasLegacyStreamMode) { - delete params.entry.streamMode; - changes.push( - `Moved ${params.pathPrefix}.streamMode → ${params.pathPrefix}.streaming (${resolved}).`, - ); - } - if (typeof legacyStreaming === "boolean") { - changes.push(`Normalized ${params.pathPrefix}.streaming boolean → enum (${resolved}).`); - } + migrateCommonStreamingMode(resolveTelegramPreviewStreamMode); return; } if (params.provider === "discord") { - if (!hasLegacyStreamMode && typeof legacyStreaming !== "boolean") { - return; - } - const resolved = resolveDiscordPreviewStreamMode(params.entry); - params.entry.streaming = resolved; - if (hasLegacyStreamMode) { - delete params.entry.streamMode; - changes.push( - `Moved ${params.pathPrefix}.streamMode → ${params.pathPrefix}.streaming (${resolved}).`, - ); - } - if (typeof legacyStreaming === "boolean") { - changes.push(`Normalized ${params.pathPrefix}.streaming boolean → enum (${resolved}).`); - } + migrateCommonStreamingMode(resolveDiscordPreviewStreamMode); return; }