From cdee3e9d4f3a721fb6efd11f6bcac64d6d08a201 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 29 Jun 2022 00:02:17 -0300 Subject: optional data pre-cache --- src/data/cacheable-object.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/data/cacheable-object.js') diff --git a/src/data/cacheable-object.js b/src/data/cacheable-object.js index fe1817f6..688d8a0f 100644 --- a/src/data/cacheable-object.js +++ b/src/data/cacheable-object.js @@ -315,6 +315,30 @@ export default class CacheableObject { }; } + static cacheAllExposedProperties(obj) { + if (!(obj instanceof CacheableObject)) { + console.warn('Not a CacheableObject:', obj); + return; + } + + if (!obj.constructor.propertyDescriptors) { + console.warn('Missing property descriptors:', obj); + return; + } + + for (const [property, descriptor] of Object.entries( + obj.constructor.propertyDescriptors + )) { + const {flags} = descriptor; + + if (!flags.expose) { + continue; + } + + obj[property]; + } + } + static DEBUG_SLOW_TRACK_INVALID_PROPERTIES = false; static _invalidAccesses = new Set(); -- cgit 1.3.0-6-gf8a5