import { MigrationHelper } from "../migration-helper"; import { Migrator } from "../migrator"; type ExpectedGlobal = { locale?: string; }; export const LOCALE_KEY = { key: "locale", stateDefinition: { name: "translation", }, }; export class PreferredLanguageMigrator extends Migrator<31, 32> { async migrate(helper: MigrationHelper): Promise { // global state const global = await helper.get("global"); if (!global?.locale) { return; } await helper.setToGlobal(LOCALE_KEY, global.locale); delete global.locale; await helper.set("global", global); } async rollback(helper: MigrationHelper): Promise { const locale = await helper.getFromGlobal(LOCALE_KEY); if (!locale) { return; } const global = (await helper.get("global")) ?? {}; global.locale = locale; await helper.set("global", global); await helper.setToGlobal(LOCALE_KEY, null); } }