@nymphjs/client
Version:
Nymph.js - Client
27 lines • 830 B
JavaScript
export default class EntityWeakCache {
references = new WeakMap();
get(EntityClass, guid) {
const classMap = this.references.get(EntityClass);
if (classMap && guid in classMap) {
const weakRef = classMap[guid];
const deref = weakRef && weakRef.deref();
if (deref != null) {
return deref;
}
else {
delete classMap[guid];
}
}
return null;
}
set(EntityClass, entity) {
if (!entity.guid) {
return;
}
const weakRef = new WeakRef(entity);
const classMap = this.references.get(EntityClass) || {};
this.references.set(EntityClass, classMap);
classMap[entity.guid] = weakRef;
}
}
//# sourceMappingURL=EntityWeakCache.js.map