ds4/src/migration/009.js

41 lines
1.2 KiB
JavaScript
Raw Normal View History

// SPDX-FileCopyrightText: 2023 Johannes Loher
//
// SPDX-License-Identifier: MIT
import {
getSceneMigrator,
migrateCollection,
migrateCompendiums,
getCompendiumMigrator,
getActorMigrator,
} from "./migrationHelpers.js";
/** @type {import("./migration.js").Migration["migrate"]} */
async function migrate() {
await migrateCollection(game.actors, migrateActor);
await migrateCollection(game.scenes, migrateScene);
await migrateCompendiums(migrateCompendium);
}
const itemIdRegex = /Item\.([a-zA-Z0-9]+)/;
/** @type {import('./migrationHelpers.js').Migrator<ActiveEffect>} */
async function migrateActiveEffect(activeEffect) {
if (activeEffect.parent instanceof Actor) {
const itemId = activeEffect.origin?.match(itemIdRegex)?.[1];
if (activeEffect.parent.items.has(itemId)) {
await activeEffect.delete();
}
}
}
const migrateActor = getActorMigrator(undefined, migrateActiveEffect);
const migrateScene = getSceneMigrator(migrateActor);
const migrateCompendium = getCompendiumMigrator({ migrateActor, migrateScene });
/** @type {import("./migration.js").Migration} */
export const migration = {
migrate,
migrateCompendium,
};