Cleanup applying metadata migrations

This commit is contained in:
schroda
2026-05-09 14:58:06 +02:00
parent 0b3573ec7a
commit 309e37b83f

View File

@@ -365,40 +365,32 @@ export const applyMetadataMigrations = (
? 0
: Math.max(0, Number(meta[migrationIdKey]));
const migrationToMetadata: [number, Metadata][] = [[0, meta]];
const migratedMetadata = METADATA_MIGRATIONS.slice(appliedMigrationId).reduce(
(metadataToMigrate, migration, index) => {
const migrationId = index + 1;
METADATA_MIGRATIONS.forEach((migration, index) => {
const migrationId = index + 1;
const [, metadataToMigrate] = migrationToMetadata[migrationId - 1];
const appKeyPrefixForMigration = getAppKeyPrefixForMigration(migrationId);
const appKeyPrefixMigrated = applyAppKeyPrefixMigration(metadataToMigrate, migration);
const metadataValuesMigrated = applyMetadataValueMigration(
appKeyPrefixMigrated,
migration,
appKeyPrefixForMigration,
);
const metadataKeysMigrated = applyMetadataKeyMigration(
metadataValuesMigrated,
migration,
appKeyPrefixForMigration,
);
const metadataKeysDeletedMigrated = applyMetadataDeleteKeysMigration(
metadataKeysMigrated,
migration,
appKeyPrefixForMigration,
);
const isMigrationRequired = appliedMigrationId < migrationId;
if (!isMigrationRequired) {
migrationToMetadata.push([migrationId, metadataToMigrate]);
return;
}
const appKeyPrefixForMigration = getAppKeyPrefixForMigration(migrationId);
const appKeyPrefixMigrated = applyAppKeyPrefixMigration(metadataToMigrate, migration);
const metadataValuesMigrated = applyMetadataValueMigration(
appKeyPrefixMigrated,
migration,
appKeyPrefixForMigration,
);
const metadataKeysMigrated = applyMetadataKeyMigration(
metadataValuesMigrated,
migration,
appKeyPrefixForMigration,
);
const metadataKeysDeletedMigrated = applyMetadataDeleteKeysMigration(
metadataKeysMigrated,
migration,
appKeyPrefixForMigration,
);
migrationToMetadata.push([migrationId, metadataKeysDeletedMigrated]);
});
const migratedMetadata = migrationToMetadata.pop()?.[1] ?? meta;
return metadataKeysDeletedMigrated;
},
meta,
);
commitMigratedMetadata(type, metadataHolder, migratedMetadata, useEffectFn);