Files
nothoughts/node_modules/pixi.js/lib/assets/cache/CacheParser.d.ts
2025-08-04 18:57:35 +02:00

33 lines
1.3 KiB
TypeScript

import type { ExtensionMetadata } from '../../extensions/Extensions';
/**
* For every asset that is cached, it will call the parsers test function
* the flow is as follows:
*
* 1. `cacheParser.test()`: Test the asset.
* 2. `cacheParser.getCacheableAssets()`: If the test passes call the getCacheableAssets function with the asset
*
* Useful if you want to add more than just a raw asset to the cache
* (for example a spritesheet will want to make all its sub textures easily accessible in the cache)
* @memberof assets
*/
export interface CacheParser<T = any> {
/** The extension type of this cache parser */
extension?: ExtensionMetadata;
/** A config to adjust the parser */
config?: Record<string, any>;
/**
* Gets called by the cache when a dev caches an asset
* @param asset - the asset to test
*/
test: (asset: T) => boolean;
/**
* If the test passes, this function is called to get the cacheable assets
* an example may be that a spritesheet object will return all the sub textures it has so they can
* be cached.
* @param keys - The keys to cache the assets under
* @param asset - The asset to get the cacheable assets from
* @returns A key-value pair of cacheable assets
*/
getCacheableAssets: (keys: string[], asset: T) => Record<string, any>;
}