{"version":3,"file":"AssetExtension.mjs","sources":["../src/AssetExtension.ts"],"sourcesContent":["import { extensions, ExtensionType } from 'pixijs/core';\n\nimport type { CacheParser } from './cache';\nimport type { FormatDetectionParser } from './detections';\nimport type { LoaderParser } from './loader';\nimport type { ResolveURLParser } from './resolver';\n\nconst assetKeyMap = {\n    loader: ExtensionType.LoadParser,\n    resolver: ExtensionType.ResolveParser,\n    cache: ExtensionType.CacheParser,\n    detection: ExtensionType.DetectionParser,\n};\n\ntype AssetType = keyof typeof assetKeyMap;\n\n/**\n * This developer convenience object allows developers to group\n * together the various asset parsers into a single object.\n * @memberof PIXI\n */\ninterface AssetExtension<ASSET = any, META_DATA = any>\n{\n    extension: ExtensionType.Asset,\n    loader?: Partial<LoaderParser<ASSET, META_DATA>>,\n    resolver?: Partial<ResolveURLParser>,\n    cache?: Partial<CacheParser<ASSET>>,\n    detection?: Partial<FormatDetectionParser>,\n}\n\n// Split the Asset extension into it's various parts\n// these are handled in the Assets.ts file\nextensions.handle(ExtensionType.Asset, (extension) =>\n{\n    const ref = extension.ref as AssetExtension;\n\n    Object.entries(assetKeyMap)\n        .filter(([key]) => !!ref[key as AssetType])\n        .forEach(([key, type]) => extensions.add(Object.assign(\n            ref[key as AssetType],\n            // Allow the function to optionally define it's own\n            // ExtensionMetadata, the use cases here is priority for LoaderParsers\n            { extension: ref[key as AssetType].extension ?? type },\n        )));\n}, (extension) =>\n{\n    const ref = extension.ref as AssetExtension;\n\n    Object.keys(assetKeyMap)\n        .filter((key) => !!ref[key as AssetType])\n        .forEach((key) => extensions.remove(ref[key as AssetType]));\n});\n\nexport type { AssetExtension };\n"],"names":[],"mappings":";;AAOA,MAAM,WAAc,GAAA;AAAA,EAChB,QAAQ,aAAc,CAAA,UAAA;AAAA,EACtB,UAAU,aAAc,CAAA,aAAA;AAAA,EACxB,OAAO,aAAc,CAAA,WAAA;AAAA,EACrB,WAAW,aAAc,CAAA,eAAA;AAC7B,CAAA,CAAA;AAoBA,UAAA,CAAW,MAAO,CAAA,aAAA,CAAc,KAAO,EAAA,CAAC,SACxC,KAAA;AACI,EAAA,MAAM,MAAM,SAAU,CAAA,GAAA,CAAA;AAEtB,EAAA,MAAA,CAAO,OAAQ,CAAA,WAAW,CACrB,CAAA,MAAA,CAAO,CAAC,CAAC,GAAS,CAAA,KAAA,CAAC,CAAC,GAAA,CAAI,GAAiB,CAAA,CAAA,CACzC,QAAQ,CAAC,CAAC,GAAK,EAAA,IAAA,CAAA,KAAU,UAAW,CAAA,GAAA,CAAI,MAAO,CAAA,MAAA,CAC5C,IAAI,GAGJ,CAAA,EAAA,EAAE,SAAW,EAAA,GAAA,CAAI,GAAkB,CAAA,CAAA,SAAA,IAAa,IAAK,EACzD,CAAC,CAAC,CAAA,CAAA;AACV,CAAA,EAAG,CAAC,SACJ,KAAA;AACI,EAAA,MAAM,MAAM,SAAU,CAAA,GAAA,CAAA;AAEtB,EAAA,MAAA,CAAO,KAAK,WAAW,CAAA,CAClB,OAAO,CAAC,GAAA,KAAQ,CAAC,CAAC,GAAA,CAAI,GAAiB,CAAA,CAAA,CACvC,QAAQ,CAAC,GAAA,KAAQ,WAAW,MAAO,CAAA,GAAA,CAAI,IAAiB,CAAC,CAAA,CAAA;AAClE,CAAC,CAAA"}