ds4/src/migration/002.js

46 lines
1.4 KiB
JavaScript
Raw Normal View History

2021-06-26 22:02:00 +02:00
// SPDX-FileCopyrightText: 2021 Johannes Loher
//
// SPDX-License-Identifier: MIT
2021-07-08 02:32:25 +02:00
import {
getSceneMigrator,
migrateCollection,
2021-07-08 02:32:25 +02:00
migrateCompendiums,
getCompendiumMigrator,
getActorMigrator,
} from "./migrationHelpers.js";
2021-07-08 02:32:25 +02:00
/** @type {import("./migration.js").Migration["migrate"]} */
async function migrate() {
const itemsResult = await migrateCollection(game.items, migrateItem);
const actorsResult = await migrateCollection(game.actors, migrateActor);
const scenesResult = await migrateCollection(game.scenes, migrateScene);
const compendiumsResult = await migrateCompendiums(migrateCompendium);
return itemsResult === "error" ||
actorsResult === "error" ||
scenesResult === "error" ||
compendiumsResult === "error"
? "error"
: "success";
2021-07-08 02:32:25 +02:00
}
/** @type {import('./migrationHelpers.js').Migrator<Item>} */
async function migrateItem(item) {
if (item.type === "equipment" || item.type === "trinket") {
await item.update({ type: item.type === "equipment" ? "loot" : "equipment" });
}
2021-07-08 02:32:25 +02:00
}
const migrateActor = getActorMigrator(migrateItem);
const migrateScene = getSceneMigrator(migrateActor);
2021-07-08 02:32:25 +02:00
const migrateCompendium = getCompendiumMigrator(
{ migrateItem, migrateActor, migrateScene },
2021-07-08 02:32:25 +02:00
{ migrateToTemplateEarly: false },
);
/** @type {import("./migration.js").Migration} */
export const migration = {
migrate,
migrateCompendium,
};