Cleanup applying metadata migrations
This commit is contained in:
@@ -365,40 +365,32 @@ export const applyMetadataMigrations = (
|
|||||||
? 0
|
? 0
|
||||||
: Math.max(0, Number(meta[migrationIdKey]));
|
: 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 appKeyPrefixForMigration = getAppKeyPrefixForMigration(migrationId);
|
||||||
const migrationId = index + 1;
|
const appKeyPrefixMigrated = applyAppKeyPrefixMigration(metadataToMigrate, migration);
|
||||||
const [, metadataToMigrate] = migrationToMetadata[migrationId - 1];
|
const metadataValuesMigrated = applyMetadataValueMigration(
|
||||||
|
appKeyPrefixMigrated,
|
||||||
|
migration,
|
||||||
|
appKeyPrefixForMigration,
|
||||||
|
);
|
||||||
|
const metadataKeysMigrated = applyMetadataKeyMigration(
|
||||||
|
metadataValuesMigrated,
|
||||||
|
migration,
|
||||||
|
appKeyPrefixForMigration,
|
||||||
|
);
|
||||||
|
const metadataKeysDeletedMigrated = applyMetadataDeleteKeysMigration(
|
||||||
|
metadataKeysMigrated,
|
||||||
|
migration,
|
||||||
|
appKeyPrefixForMigration,
|
||||||
|
);
|
||||||
|
|
||||||
const isMigrationRequired = appliedMigrationId < migrationId;
|
return metadataKeysDeletedMigrated;
|
||||||
if (!isMigrationRequired) {
|
},
|
||||||
migrationToMetadata.push([migrationId, metadataToMigrate]);
|
meta,
|
||||||
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;
|
|
||||||
|
|
||||||
commitMigratedMetadata(type, metadataHolder, migratedMetadata, useEffectFn);
|
commitMigratedMetadata(type, metadataHolder, migratedMetadata, useEffectFn);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user