mirror of
https://github.com/imputnet/cobalt.git
synced 2024-12-28 02:26:10 +00:00
web/settings/migrate: refactor, migrate to v4 schema
why the fuck was tab 2 spaces here
This commit is contained in:
parent
0b6270e745
commit
57734822ea
|
@ -1,38 +1,52 @@
|
|||
import type { RecursivePartial } from "$lib/types/generic";
|
||||
import type {
|
||||
AllPartialSettingsWithSchema,
|
||||
CobaltSettingsV3,
|
||||
PartialSettings,
|
||||
AllPartialSettingsWithSchema,
|
||||
CobaltSettingsV3,
|
||||
CobaltSettingsV4,
|
||||
PartialSettings,
|
||||
} from "$lib/types/settings";
|
||||
import { getBrowserLanguage } from "$lib/settings/youtube-lang";
|
||||
|
||||
type Migrator = (
|
||||
s: AllPartialSettingsWithSchema
|
||||
) => AllPartialSettingsWithSchema;
|
||||
type Migrator = (s: AllPartialSettingsWithSchema) => AllPartialSettingsWithSchema;
|
||||
|
||||
const migrations: Record<number, Migrator> = {
|
||||
[3]: (settings: AllPartialSettingsWithSchema) => {
|
||||
const out = settings as RecursivePartial<CobaltSettingsV3>;
|
||||
out.schemaVersion = 3;
|
||||
[3]: (settings: AllPartialSettingsWithSchema) => {
|
||||
const out = settings as RecursivePartial<CobaltSettingsV3>;
|
||||
out.schemaVersion = 3;
|
||||
|
||||
if (settings?.save && "youtubeDubBrowserLang" in settings.save) {
|
||||
if (settings.save.youtubeDubBrowserLang) {
|
||||
out.save!.youtubeDubLang = getBrowserLanguage();
|
||||
}
|
||||
if (settings?.save && "youtubeDubBrowserLang" in settings.save) {
|
||||
if (settings.save.youtubeDubBrowserLang) {
|
||||
out.save!.youtubeDubLang = getBrowserLanguage();
|
||||
}
|
||||
|
||||
delete settings.save.youtubeDubBrowserLang;
|
||||
}
|
||||
delete settings.save.youtubeDubBrowserLang;
|
||||
}
|
||||
|
||||
return out as AllPartialSettingsWithSchema;
|
||||
},
|
||||
return out as AllPartialSettingsWithSchema;
|
||||
},
|
||||
|
||||
[4]: (settings: AllPartialSettingsWithSchema) => {
|
||||
const out = settings as RecursivePartial<CobaltSettingsV4>;
|
||||
out.schemaVersion = 4;
|
||||
|
||||
if (settings?.processing) {
|
||||
if ("allowDefaultOverride" in settings.processing) {
|
||||
delete settings.processing.allowDefaultOverride;
|
||||
}
|
||||
if ("seenOverrideWarning" in settings.processing) {
|
||||
delete settings.processing.seenOverrideWarning;
|
||||
}
|
||||
}
|
||||
|
||||
return out as AllPartialSettingsWithSchema;
|
||||
},
|
||||
};
|
||||
|
||||
export const migrate = (
|
||||
settings: AllPartialSettingsWithSchema
|
||||
): PartialSettings => {
|
||||
return Object.keys(migrations)
|
||||
.map(Number)
|
||||
.filter((version) => version > settings.schemaVersion)
|
||||
.reduce((settings, migrationVersion) => {
|
||||
return migrations[migrationVersion](settings);
|
||||
}, settings as AllPartialSettingsWithSchema) as PartialSettings;
|
||||
export const migrate = (settings: AllPartialSettingsWithSchema): PartialSettings => {
|
||||
return Object.keys(migrations)
|
||||
.map(Number)
|
||||
.filter((version) => version > settings.schemaVersion)
|
||||
.reduce((settings, migrationVersion) => {
|
||||
return migrations[migrationVersion](settings);
|
||||
}, settings as AllPartialSettingsWithSchema) as PartialSettings;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue