Files
Foundry-VTT-Docker/resources/app/dist/core/utils.mjs

1 line
1.2 KiB
JavaScript
Raw Normal View History

2025-01-04 00:34:03 +01:00
import{mergeObject,parseUuid}from"../../common/utils/helpers.mjs";export async function fromUuid(e,{invalid:t=!1}={}){let s;const{collection:i,documentId:n,documentType:d,embedded:o}=parseUuid(e);for(s="CompendiumDocument"===i.name&&"Folder"===d?await i.getFolder(n,{strict:!0,dropInvalidEmbedded:!0}):await i.get(n,{strict:!0,dropInvalidEmbedded:!0});s&&o.length>1;){const[e,i]=o.splice(0,2);s=s.getEmbeddedDocument(e,i,{strict:!0,invalid:t}),s instanceof foundry.documents.BaseToken&&o.length&&await s.loadRelatedDocuments()}return s||null}export function tagModelStats(e,{changes:t,user:s,modifiedTime:i}={}){if(!e.schema.has("_stats"))return;const n=e._stats,{release:d,game:o}=global,a={modifiedTime:i??Date.now()};s&&(a.lastModifiedBy=s.id),n.createdTime||t||(a.createdTime=a.modifiedTime),n.coreVersion!==d.version&&(a.coreVersion=d.version),t&&!hasSystemDataChanged(e,t)||(n.systemId!==o.system.id&&(a.systemId=o.system.id),n.systemVersion!==o.system.version&&(a.systemVersion=o.system.version)),t?mergeObject(t,{_stats:a}):e.updateSource({_stats:a})}function hasSystemDataChanged(e,t){if(e.schema.has("system")&&("system"in t||"type"in t))return!0;const s=t.flags;if(s){const e=game.system.id;if(e in s||`-=${e}`in s)return!0}return!1}