diff --git a/js/services/exploreDataService.js b/js/services/exploreDataService.js index 3a4fc77b..da35d17c 100644 --- a/js/services/exploreDataService.js +++ b/js/services/exploreDataService.js @@ -21,13 +21,19 @@ function normalizeAddressKey(value) { return trimmed.toLowerCase(); } -function collectVideoTags(video) { - const tags = new Set(); +const collectVideoTagsCache = new WeakMap(); +function collectVideoTags(video) { if (!video || typeof video !== "object") { - return tags; + return new Set(); } + if (collectVideoTagsCache.has(video)) { + return collectVideoTagsCache.get(video); + } + + const tags = new Set(); + if (Array.isArray(video.tags)) { for (const tag of video.tags) { if (Array.isArray(tag) && tag[0] === "t" && typeof tag[1] === "string") { @@ -51,6 +57,7 @@ function collectVideoTags(video) { } } + collectVideoTagsCache.set(video, tags); return tags; }