{"version":3,"file":"loadJson.mjs","sources":["../../../../src/assets/loader/parsers/loadJson.ts"],"sourcesContent":["import { DOMAdapter } from '../../../environment/adapter';\nimport { ExtensionType } from '../../../extensions/Extensions';\nimport { checkDataUrl } from '../../utils/checkDataUrl';\nimport { checkExtension } from '../../utils/checkExtension';\nimport { LoaderParserPriority } from './LoaderParser';\n\nimport type { LoaderParser } from './LoaderParser';\n\nconst validJSONExtension = '.json';\nconst validJSONMIME = 'application/json';\n\n/**\n * A simple loader plugin for loading json data\n * @category assets\n * @advanced\n */\nexport const loadJson = {\n    extension: {\n        type: ExtensionType.LoadParser,\n        priority: LoaderParserPriority.Low,\n    },\n\n    /** used for deprecation purposes */\n    name: 'loadJson',\n    id: 'json',\n\n    test(url: string): boolean\n    {\n        return checkDataUrl(url, validJSONMIME) || checkExtension(url, validJSONExtension);\n    },\n\n    async load<T>(url: string): Promise<T>\n    {\n        const response = await DOMAdapter.get().fetch(url);\n\n        const json = await response.json();\n\n        return json as T;\n    },\n} satisfies LoaderParser<string>;\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,kBAAA,GAAqB,OAAA;AAC3B,MAAM,aAAA,GAAgB,kBAAA;AAOf,MAAM,QAAA,GAAW;AAAA,EACpB,SAAA,EAAW;AAAA,IACP,MAAM,aAAA,CAAc,UAAA;AAAA,IACpB,UAAU,oBAAA,CAAqB;AAAA,GACnC;AAAA;AAAA,EAGA,IAAA,EAAM,UAAA;AAAA,EACN,EAAA,EAAI,MAAA;AAAA,EAEJ,KAAK,GAAA,EACL;AACI,IAAA,OAAO,aAAa,GAAA,EAAK,aAAa,CAAA,IAAK,cAAA,CAAe,KAAK,kBAAkB,CAAA;AAAA,EACrF,CAAA;AAAA,EAEA,MAAM,KAAQ,GAAA,EACd;AACI,IAAA,MAAM,WAAW,MAAM,UAAA,CAAW,GAAA,EAAI,CAAE,MAAM,GAAG,CAAA;AAEjD,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,IAAA,OAAO,IAAA;AAAA,EACX;AACJ;;;;"}