web/settings: migrate boolean localProcessing to enum

This commit is contained in:
wukko 2025-06-22 16:28:18 +06:00
parent ac85ce86c0
commit a4d5f5b380
No known key found for this signature in database
GPG Key ID: 3E30B3F26C7B4AA2
3 changed files with 20 additions and 2 deletions

View File

@ -22,7 +22,8 @@ const defaultSettings: CobaltSettings = {
},
save: {
alwaysProxy: false,
localProcessing: device.supports.defaultLocalProcessing || false,
localProcessing:
device.supports.defaultLocalProcessing ? "preferred" : "disabled",
audioBitrate: "128",
audioFormat: "mp3",
disableMetadata: false,

View File

@ -5,6 +5,7 @@ import type {
CobaltSettingsV3,
CobaltSettingsV4,
CobaltSettingsV5,
CobaltSettingsV6,
} from "$lib/types/settings";
import { getBrowserLanguage } from "$lib/settings/audio-sub-language";
@ -80,6 +81,20 @@ const migrations: Record<number, Migrator> = {
return out as AllPartialSettingsWithSchema;
},
[6]: (settings: AllPartialSettingsWithSchema) => {
const out = settings as RecursivePartial<CobaltSettingsV6>;
out.schemaVersion = 6;
if (settings?.save) {
if ("localProcessing" in settings.save) {
out.save!.localProcessing =
settings.save.localProcessing ? "preferred" : "disabled";
}
}
return out as AllPartialSettingsWithSchema;
},
};
export const migrate = (settings: AllPartialSettingsWithSchema): PartialSettings => {

View File

@ -2,10 +2,12 @@ import type { SubtitleLang } from "$lib/settings/audio-sub-language";
import type { CobaltSettingsV5 } from "$lib/types/settings/v5";
export const youtubeVideoContainerOptions = ["auto", "mp4", "webm", "mkv"] as const;
export const localProcessingOptions = ["disabled", "preferred", "forced"] as const;
export type CobaltSettingsV6 = Omit<CobaltSettingsV5, 'schemaVersion' | 'save'> & {
schemaVersion: 6,
save: CobaltSettingsV5['save'] & {
save: Omit<CobaltSettingsV5['save'], 'localProcessing'> & {
localProcessing: typeof localProcessingOptions[number],
youtubeVideoContainer: typeof youtubeVideoContainerOptions[number];
subtitleLang: SubtitleLang,
},