import { LitElement, nothing } from "lit"; import { Task } from "@lit/task"; import { CLIENT_CONTEXT } from "@helpers"; import { customElement, property } from "lit/decorators.js"; @customElement("solid-tems-cache-improver") export class TemsCacheImprover extends LitElement { @property({ attribute: "cache-src" }) cacheSrc?: string; _getResource = new Task(this, { task: async ([cacheSrc]) => { if (!cacheSrc) { return; } const pool = [ window.sibStore.getData(`${cacheSrc}featureflags/`, CLIENT_CONTEXT), window.sibStore.getData(`${cacheSrc}offers/`, CLIENT_CONTEXT), window.sibStore.getData( `${cacheSrc}objects/affiliations/mediaobjects/factcheckings/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/assets/mediaobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/categories/3dobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/categories/mediaobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/formats/3dobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/formats/mediaobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/keywords/3dobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/keywords/mediaobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/languages/mediaobjects/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/licences/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/locations/`, CLIENT_CONTEXT ), window.sibStore.getData(`${cacheSrc}objects/images/`, CLIENT_CONTEXT), window.sibStore.getData( `${cacheSrc}objects/topics/mediaobjects/factcheckings/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/topics/sentiments/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/types/mediaobjects/civilsocieties/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/types/mediaobjects/stories/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}providers/categories/`, CLIENT_CONTEXT ), ]; await Promise.all(pool); const pool2 = [ window.sibStore.getData(`${cacheSrc}providers/`, CLIENT_CONTEXT), window.sibStore.getData(`${cacheSrc}data-offers/`, CLIENT_CONTEXT), window.sibStore.getData(`${cacheSrc}services/`, CLIENT_CONTEXT), ]; await Promise.all(pool2); const pool3 = [ window.sibStore.getData( `${cacheSrc}objects/mediaobjects/civilsocieties/ `, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/mediaobjects/factcheckings/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/mediaobjects/interactiveinfographics/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/mediaobjects/stories/`, CLIENT_CONTEXT ), window.sibStore.getData( `${cacheSrc}objects/object3d/`, CLIENT_CONTEXT ), window.sibStore.getData(`${cacheSrc}sentiments/`, CLIENT_CONTEXT), ]; await Promise.all(pool3); window.sibStore.getData(`${cacheSrc}groups/`, CLIENT_CONTEXT); return; }, args: () => [this.cacheSrc], }); render() { if (!this.cacheSrc) return nothing; return this._getResource.render({ pending: () => nothing, complete: () => nothing, error: (e) => { if (import.meta.env.DEV) { console.error(e, this); } return nothing; }, }); } }