Some refactors

This commit is contained in:
Carlos Fernandez 2026-07-11 18:12:19 -04:00
parent e3e1ae2706
commit c033a578fa
2 changed files with 18 additions and 8 deletions

View file

@ -1,3 +1,7 @@
/**
* @import DHItem from "../../documents/item.mjs";
*/
/**
* The base class of an async migration.
* These are generally run between versions for things that require compendiums or must be done in post.
@ -7,6 +11,17 @@
export class MigrationHandlerBase {
version = null;
/**
* Gets change data for an active effect's source, or null if no changes
* @param {object} effectSource
* @param {DHItem} item
* @returns {Promise<object>}
* @protected
*/
async updateActiveEffectSource(effectSource, item) {
return null;
}
async migrate() {
// todo: handle migrations, but have a way for a migration handler to specify if migrations are handled
// todo: handle more than just migrating effects. Right now this can only migrate effects
@ -33,7 +48,7 @@ export class MigrationHandlerBase {
const updateItem = async item => {
const itemUpdates = [];
for (const effect of item.effects) {
const changes = await this.updateEffectSource(effect.toObject(), effect.parent);
const changes = await this.updateActiveEffectSource(effect.toObject(), item);
if (changes) itemUpdates.push(changes);
}
if (itemUpdates.length) {