refactor: update each document individually during migrations
This commit is contained in:
parent
e536a6fbda
commit
124824da83
10 changed files with 255 additions and 375 deletions
|
@ -3,39 +3,33 @@
|
|||
// SPDX-License-Identifier: MIT
|
||||
|
||||
import {
|
||||
getActorUpdateDataGetter,
|
||||
getCompendiumMigrator,
|
||||
getSceneUpdateDataGetter,
|
||||
migrateActors,
|
||||
getSceneMigrator,
|
||||
migrateCollection,
|
||||
migrateCompendiums,
|
||||
migrateItems,
|
||||
migrateScenes,
|
||||
} from "./migrationHelpers";
|
||||
getCompendiumMigrator,
|
||||
getActorMigrator,
|
||||
} from "./migrationHelpers.js";
|
||||
|
||||
/** @type {import("./migration").Migration["migrate"]} */
|
||||
/** @type {import("./migration.js").Migration["migrate"]} */
|
||||
async function migrate() {
|
||||
await migrateItems(getItemUpdateData);
|
||||
await migrateActors(getActorUpdateData);
|
||||
await migrateScenes(getSceneUpdateData);
|
||||
await migrateCollection(game.items, migrateItem);
|
||||
await migrateCollection(game.actors, migrateActor);
|
||||
await migrateCollection(game.scenes, migrateScene);
|
||||
await migrateCompendiums(migrateCompendium);
|
||||
}
|
||||
|
||||
/** @type {import("./migrationHelpers").ItemUpdateDataGetter} */
|
||||
function getItemUpdateData(itemData) {
|
||||
if (itemData.type !== "spell") return;
|
||||
|
||||
return {
|
||||
system: {
|
||||
allowsDefense: false,
|
||||
},
|
||||
};
|
||||
/** @type {import('./migrationHelpers.js').Migrator<Item>} */
|
||||
async function migrateItem(item) {
|
||||
if (item.type === "spell") {
|
||||
await item.update({ system: { allowsDefense: false } });
|
||||
}
|
||||
}
|
||||
|
||||
const getActorUpdateData = getActorUpdateDataGetter(getItemUpdateData);
|
||||
const getSceneUpdateData = getSceneUpdateDataGetter(getActorUpdateData);
|
||||
const migrateCompendium = getCompendiumMigrator({ getItemUpdateData, getActorUpdateData, getSceneUpdateData });
|
||||
const migrateActor = getActorMigrator(migrateItem);
|
||||
const migrateScene = getSceneMigrator(migrateActor);
|
||||
const migrateCompendium = getCompendiumMigrator({ migrateItem, migrateActor, migrateScene });
|
||||
|
||||
/** @type {import("./migration").Migration} */
|
||||
/** @type {import("./migration.js").Migration} */
|
||||
export const migration = {
|
||||
migrate,
|
||||
migrateCompendium,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue