{"version":3,"file":"loadNodeBase64.mjs","sources":["../../src/adapter/loadNodeBase64.ts"],"sourcesContent":["import canvasModule from 'canvas';\nimport { extensions, ExtensionType, Texture, utils } from 'pixijs/core';\nimport { NodeCanvasElement } from './NodeCanvasElement';\n\nimport type { LoadAsset, LoaderParser } from 'pixijs/assets';\n\nconst { loadImage } = canvasModule;\nconst validMimes = ['image/png', 'image/jpg', 'image/jpeg', 'image/svg'];\n\nfunction isSupportedDataURL(url: string): boolean\n{\n    const match = url.match(/^data:([^;]+);base64,/);\n\n    if (!match) return false;\n\n    const mimeType = match[1];\n\n    return validMimes.includes(mimeType);\n}\n\n/** loads our textures into a node canvas */\nexport const loadNodeBase64 = {\n    extension: ExtensionType.LoadParser,\n\n    test(url: string): boolean\n    {\n        return isSupportedDataURL(url);\n    },\n\n    async load(url: string, asset: LoadAsset): Promise<Texture>\n    {\n        const image = await loadImage(url);\n        const canvas = new NodeCanvasElement(image.width, image.height);\n        const ctx = canvas.getContext('2d');\n\n        ctx.drawImage(image, 0, 0);\n        const texture = Texture.from(canvas, {\n            resolution: utils.getResolutionOfUrl(url),\n            ...asset.data\n        });\n\n        return texture;\n    },\n\n    unload(texture: Texture): void\n    {\n        texture.destroy(true);\n    }\n} as LoaderParser<Texture>;\n\nextensions.add(loadNodeBase64);\n"],"names":[],"mappings":";;;;AAMA,MAAM,EAAE,SAAc,EAAA,GAAA,YAAA,CAAA;AACtB,MAAM,UAAa,GAAA,CAAC,WAAa,EAAA,WAAA,EAAa,cAAc,WAAW,CAAA,CAAA;AAEvE,SAAA,kBAAA,CAA4B,GAC5B,EAAA;AACI,EAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,KAAA,CAAM,uBAAuB,CAAA,CAAA;AAE/C,EAAA,IAAI,CAAC,KAAA;AAAO,IAAO,OAAA,KAAA,CAAA;AAEnB,EAAA,MAAM,WAAW,KAAM,CAAA,CAAA,CAAA,CAAA;AAEvB,EAAO,OAAA,UAAA,CAAW,SAAS,QAAQ,CAAA,CAAA;AACvC,CAAA;AAGO,MAAM,cAAiB,GAAA;AAAA,EAC1B,WAAW,aAAc,CAAA,UAAA;AAAA,EAEzB,KAAK,GACL,EAAA;AACI,IAAA,OAAO,mBAAmB,GAAG,CAAA,CAAA;AAAA,GACjC;AAAA,EAEA,MAAM,IAAK,CAAA,GAAA,EAAa,KACxB,EAAA;AACI,IAAM,MAAA,KAAA,GAAQ,MAAM,SAAA,CAAU,GAAG,CAAA,CAAA;AACjC,IAAA,MAAM,SAAS,IAAI,iBAAA,CAAkB,KAAM,CAAA,KAAA,EAAO,MAAM,MAAM,CAAA,CAAA;AAC9D,IAAM,MAAA,GAAA,GAAM,MAAO,CAAA,UAAA,CAAW,IAAI,CAAA,CAAA;AAElC,IAAI,GAAA,CAAA,SAAA,CAAU,KAAO,EAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACzB,IAAM,MAAA,OAAA,GAAU,OAAQ,CAAA,IAAA,CAAK,MAAQ,EAAA;AAAA,MACjC,UAAA,EAAY,KAAM,CAAA,kBAAA,CAAmB,GAAG,CAAA;AAAA,MACxC,GAAG,KAAM,CAAA,IAAA;AAAA,KACZ,CAAA,CAAA;AAED,IAAO,OAAA,OAAA,CAAA;AAAA,GACX;AAAA,EAEA,OAAO,OACP,EAAA;AACI,IAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,GACxB;AACJ,EAAA;AAEA,UAAA,CAAW,IAAI,cAAc,CAAA;;;;"}