// 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() { const actorsResult = await migrateCollection(game.actors, migrateActor); const scenesResult = await migrateCollection(game.scenes, migrateScene); const compendiumsResult = await migrateCompendiums(migrateCompendium); return actorsResult === "error" || scenesResult === "error" || compendiumsResult === "error" ? "error" : "success"; } const itemIdRegex = /Item\.([a-zA-Z0-9]+)/; /** @type {import('./migrationHelpers.js').Migrator} */ 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, };