UNPKG

@pixi/assets

Version:

Asset manager for PixiJS, loading resolving and Cacheing

1 lines 2.78 kB
{"version":3,"file":"loadSVG.mjs","sources":["../../../../src/loader/parsers/textures/loadSVG.ts"],"sourcesContent":["import { BaseTexture, extensions, ExtensionType, settings, SVGResource, utils } from '@pixi/core';\nimport { checkDataUrl } from '../../../utils/checkDataUrl';\nimport { checkExtension } from '../../../utils/checkExtension';\nimport { LoaderParserPriority } from '../LoaderParser';\nimport { loadTextures } from './loadTextures';\nimport { createTexture } from './utils/createTexture';\n\nimport type { IBaseTextureOptions, Texture } from '@pixi/core';\nimport type { ResolvedAsset } from '../../../types';\nimport type { Loader } from '../../Loader';\nimport type { LoaderParser } from '../LoaderParser';\n\nconst validSVGExtension = '.svg';\nconst validSVGMIME = 'image/svg+xml';\n\n/**\n * Loads SVG's into Textures.\n * @memberof PIXI\n */\nexport const loadSVG = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.High,\n },\n\n name: 'loadSVG',\n\n test(url: string): boolean\n {\n return checkDataUrl(url, validSVGMIME) || checkExtension(url, validSVGExtension);\n },\n\n async testParse(data: string): Promise<boolean>\n {\n return SVGResource.test(data);\n },\n\n async parse(asset: string, data: ResolvedAsset<IBaseTextureOptions>, loader: Loader): Promise<Texture>\n {\n const src = new SVGResource(asset, data?.data?.resourceOptions);\n\n await src.load();\n\n const base = new BaseTexture(src, {\n resolution: utils.getResolutionOfUrl(asset),\n ...data?.data,\n });\n\n base.resource.src = data.src;\n\n const texture = createTexture(base, loader, data.src);\n\n return texture;\n },\n\n async load(url: string, _options: ResolvedAsset): Promise<string>\n {\n const response = await settings.ADAPTER.fetch(url);\n\n return response.text();\n },\n\n unload: loadTextures.unload,\n\n} as LoaderParser<Texture | string, IBaseTextureOptions>;\n\nextensions.add(loadSVG);\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,oBAAoB,QACpB,eAAe,iBAMR,UAAU;AAAA,EACnB,WAAW;AAAA,IACP,MAAM,cAAc;AAAA,IACpB,UAAU,qBAAqB;AAAA,EACnC;AAAA,EAEA,MAAM;AAAA,EAEN,KAAK,KACL;AACI,WAAO,aAAa,KAAK,YAAY,KAAK,eAAe,KAAK,iBAAiB;AAAA,EACnF;AAAA,EAEA,MAAM,UAAU,MAChB;AACW,WAAA,YAAY,KAAK,IAAI;AAAA,EAChC;AAAA,EAEA,MAAM,MAAM,OAAe,MAA0C,QACrE;AACI,UAAM,MAAM,IAAI,YAAY,OAAO,MAAM,MAAM,eAAe;AAE9D,UAAM,IAAI;AAEJ,UAAA,OAAO,IAAI,YAAY,KAAK;AAAA,MAC9B,YAAY,MAAM,mBAAmB,KAAK;AAAA,MAC1C,GAAG,MAAM;AAAA,IAAA,CACZ;AAEI,WAAA,KAAA,SAAS,MAAM,KAAK,KAET,cAAc,MAAM,QAAQ,KAAK,GAAG;AAAA,EAGxD;AAAA,EAEA,MAAM,KAAK,KAAa,UACxB;AAGI,YAFiB,MAAM,SAAS,QAAQ,MAAM,GAAG,GAEjC;EACpB;AAAA,EAEA,QAAQ,aAAa;AAEzB;AAEA,WAAW,IAAI,OAAO;"}