Files
Foundry-VTT-Docker/resources/app/node_modules/@pixi/assets/lib/cache/Cache.mjs.map
2025-01-04 00:34:03 +01:00

1 line
6.5 KiB
Plaintext

{"version":3,"file":"Cache.mjs","sources":["../../src/cache/Cache.ts"],"sourcesContent":["import { BaseTexture, Texture } from '@pixi/core';\nimport { convertToList } from '../utils';\n\nimport type { CacheParser } from './CacheParser';\n\n/**\n * A single Cache for all assets.\n *\n * When assets are added to the cache via set they normally are added to the cache as key-value pairs.\n *\n * With this cache, you can add parsers that will take the object and convert it to a list of assets that can be cached.\n * for example a cacheSprite Sheet parser will add all of the textures found within its sprite sheet directly to the cache.\n *\n * This gives devs the flexibility to cache any type of object however we want.\n *\n * It is not intended that this class is created by developers - it is part of the Asset package.\n * This is the first major system of PixiJS' main Assets class.\n * @memberof PIXI\n * @class Cache\n */\nclass CacheClass\n{\n private _parsers: CacheParser[] = [];\n\n private readonly _cache: Map<string, any> = new Map();\n private readonly _cacheMap: Map<string, {\n keys: string[],\n cacheKeys: string[],\n }> = new Map();\n\n /** Clear all entries. */\n public reset(): void\n {\n this._cacheMap.clear();\n this._cache.clear();\n }\n\n /**\n * Check if the key exists\n * @param key - The key to check\n */\n public has(key: string): boolean\n {\n return this._cache.has(key);\n }\n\n /**\n * Fetch entry by key\n * @param key - The key of the entry to get\n */\n public get<T = any>(key: string): T\n {\n const result = this._cache.get(key);\n\n if (!result)\n {\n if (process.env.DEBUG)\n {\n console.warn(`[Assets] Asset id ${key} was not found in the Cache`);\n }\n }\n\n return result as T;\n }\n\n /**\n * Set a value by key or keys name\n * @param key - The key or keys to set\n * @param value - The value to store in the cache or from which cacheable assets will be derived.\n */\n public set(key: string | string[], value: unknown): void\n {\n const keys = convertToList<string>(key);\n\n let cacheableAssets: Record<string, any>;\n\n for (let i = 0; i < this.parsers.length; i++)\n {\n const parser = this.parsers[i];\n\n if (parser.test(value))\n {\n cacheableAssets = parser.getCacheableAssets(keys, value);\n\n break;\n }\n }\n\n if (!cacheableAssets)\n {\n cacheableAssets = {};\n\n keys.forEach((key) =>\n {\n cacheableAssets[key] = value;\n });\n }\n\n const cacheKeys = Object.keys(cacheableAssets);\n\n const cachedAssets = {\n cacheKeys,\n keys\n };\n\n // this is so we can remove them later..\n keys.forEach((key) =>\n {\n this._cacheMap.set(key, cachedAssets);\n });\n\n cacheKeys.forEach((key) =>\n {\n if (this._cache.has(key) && this._cache.get(key) !== value)\n {\n if (process.env.DEBUG)\n {\n console.warn('[Cache] already has key:', key);\n }\n }\n\n this._cache.set(key, cacheableAssets[key]);\n });\n\n // temporary to keep compatible with existing texture caching.. until we remove them!\n if (value instanceof Texture)\n {\n const texture: Texture = value;\n\n keys.forEach((key) =>\n {\n if (texture.baseTexture !== Texture.EMPTY.baseTexture)\n {\n BaseTexture.addToCache(texture.baseTexture, key);\n }\n\n Texture.addToCache(texture, key);\n });\n }\n }\n\n /**\n * Remove entry by key\n *\n * This function will also remove any associated alias from the cache also.\n * @param key - The key of the entry to remove\n */\n public remove(key: string): void\n {\n if (!this._cacheMap.has(key))\n {\n if (process.env.DEBUG)\n {\n console.warn(`[Assets] Asset id ${key} was not found in the Cache`);\n }\n\n return;\n }\n\n const cacheMap = this._cacheMap.get(key);\n\n const cacheKeys = cacheMap.cacheKeys;\n\n cacheKeys.forEach((key) =>\n {\n this._cache.delete(key);\n });\n\n cacheMap.keys.forEach((key: string) =>\n {\n this._cacheMap.delete(key);\n });\n }\n\n /** All loader parsers registered */\n public get parsers(): CacheParser[]\n {\n return this._parsers;\n }\n}\n\nexport const Cache = new CacheClass();\n"],"names":["key"],"mappings":";;;AAoBA,MAAM,WACN;AAAA,EADA,cAAA;AAEI,SAAQ,WAA0B,IAEjB,KAAA,6BAA+B,OAC/B,KAAA,gCAGR;EAAI;AAAA;AAAA,EAGN,QACP;AACI,SAAK,UAAU,MAAA,GACf,KAAK,OAAO;EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,IAAI,KACX;AACW,WAAA,KAAK,OAAO,IAAI,GAAG;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,IAAa,KACpB;AACI,UAAM,SAAS,KAAK,OAAO,IAAI,GAAG;AAElC,WAAK,UAIG,QAAQ,KAAK,qBAAqB,GAAG,6BAA6B,GAInE;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,IAAI,KAAwB,OACnC;AACU,UAAA,OAAO,cAAsB,GAAG;AAElC,QAAA;AAEJ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,QAAQ,KACzC;AACU,YAAA,SAAS,KAAK,QAAQ,CAAC;AAEzB,UAAA,OAAO,KAAK,KAAK,GACrB;AACsB,0BAAA,OAAO,mBAAmB,MAAM,KAAK;AAEvD;AAAA,MACJ;AAAA,IACJ;AAEK,wBAED,kBAAkB,IAElB,KAAK,QAAQ,CAACA,SACd;AACI,sBAAgBA,IAAG,IAAI;AAAA,IAC1B,CAAA;AAGL,UAAM,YAAY,OAAO,KAAK,eAAe,GAEvC,eAAe;AAAA,MACjB;AAAA,MACA;AAAA,IAAA;AAIJ,QAAA,KAAK,QAAQ,CAACA,SACd;AACS,WAAA,UAAU,IAAIA,MAAK,YAAY;AAAA,IACvC,CAAA,GAED,UAAU,QAAQ,CAACA,SACnB;AACQ,WAAK,OAAO,IAAIA,IAAG,KAAK,KAAK,OAAO,IAAIA,IAAG,MAAM,SAI7C,QAAQ,KAAK,4BAA4BA,IAAG,GAIpD,KAAK,OAAO,IAAIA,MAAK,gBAAgBA,IAAG,CAAC;AAAA,IAAA,CAC5C,GAGG,iBAAiB,SACrB;AACI,YAAM,UAAmB;AAEpB,WAAA,QAAQ,CAACA,SACd;AACQ,gBAAQ,gBAAgB,QAAQ,MAAM,eAEtC,YAAY,WAAW,QAAQ,aAAaA,IAAG,GAGnD,QAAQ,WAAW,SAASA,IAAG;AAAA,MAAA,CAClC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,OAAO,KACd;AACI,QAAI,CAAC,KAAK,UAAU,IAAI,GAAG,GAC3B;AAGgB,cAAA,KAAK,qBAAqB,GAAG,6BAA6B;AAGtE;AAAA,IACJ;AAEA,UAAM,WAAW,KAAK,UAAU,IAAI,GAAG;AAErB,aAAS,UAEjB,QAAQ,CAACA,SACnB;AACS,WAAA,OAAO,OAAOA,IAAG;AAAA,IACzB,CAAA,GAED,SAAS,KAAK,QAAQ,CAACA,SACvB;AACS,WAAA,UAAU,OAAOA,IAAG;AAAA,IAAA,CAC5B;AAAA,EACL;AAAA;AAAA,EAGA,IAAW,UACX;AACI,WAAO,KAAK;AAAA,EAChB;AACJ;AAEa,MAAA,QAAQ,IAAI,WAAW;"}