UNPKG

2.18 kBSource Map (JSON)View Raw
1{"version":3,"sources":["dataURItoBlob.js"],"names":["module","exports","dataURItoBlob","dataURI","opts","toFile","data","split","mimeType","binary","atob","array","i","length","push","charCodeAt","bytes","Uint8Array","err","File","name","type","Blob"],"mappings":"AAAAA,MAAM,CAACC,OAAP,GAAiB,SAASC,aAAT,CAAwBC,OAAxB,EAAiCC,IAAjC,EAAuCC,MAAvC,EAA+C;AAC9D;AACA,MAAMC,IAAI,GAAGH,OAAO,CAACI,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAb,CAF8D,CAI9D;;AACA,MAAIC,QAAQ,GAAGJ,IAAI,CAACI,QAAL,IAAiBL,OAAO,CAACI,KAAR,CAAc,GAAd,EAAmB,CAAnB,EAAsBA,KAAtB,CAA4B,GAA5B,EAAiC,CAAjC,EAAoCA,KAApC,CAA0C,GAA1C,EAA+C,CAA/C,CAAhC,CAL8D,CAO9D;;AACA,MAAIC,QAAQ,IAAI,IAAhB,EAAsB;AACpBA,IAAAA,QAAQ,GAAG,YAAX;AACD;;AAED,MAAMC,MAAM,GAAGC,IAAI,CAACJ,IAAD,CAAnB;AACA,MAAMK,KAAK,GAAG,EAAd;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,MAAM,CAACI,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACtCD,IAAAA,KAAK,CAACG,IAAN,CAAWL,MAAM,CAACM,UAAP,CAAkBH,CAAlB,CAAX;AACD;;AAED,MAAII,KAAJ;;AACA,MAAI;AACFA,IAAAA,KAAK,GAAG,IAAIC,UAAJ,CAAeN,KAAf,CAAR,CADE,CAC4B;AAC/B,GAFD,CAEE,OAAOO,GAAP,EAAY;AACZ,WAAO,IAAP;AACD,GAvB6D,CAyB9D;;;AACA,MAAIb,MAAJ,EAAY;AACV,WAAO,IAAIc,IAAJ,CAAS,CAACH,KAAD,CAAT,EAAkBZ,IAAI,CAACgB,IAAL,IAAa,EAA/B,EAAmC;AAAEC,MAAAA,IAAI,EAAEb;AAAR,KAAnC,CAAP;AACD;;AAED,SAAO,IAAIc,IAAJ,CAAS,CAACN,KAAD,CAAT,EAAkB;AAAEK,IAAAA,IAAI,EAAEb;AAAR,GAAlB,CAAP;AACD,CA/BD","sourcesContent":["module.exports = function dataURItoBlob (dataURI, opts, toFile) {\n // get the base64 data\n const data = dataURI.split(',')[1]\n\n // user may provide mime type, if not get it from data URI\n let mimeType = opts.mimeType || dataURI.split(',')[0].split(':')[1].split(';')[0]\n\n // default to plain/text if data URI has no mimeType\n if (mimeType == null) {\n mimeType = 'plain/text'\n }\n\n const binary = atob(data)\n const array = []\n for (let i = 0; i < binary.length; i++) {\n array.push(binary.charCodeAt(i))\n }\n\n let bytes\n try {\n bytes = new Uint8Array(array) // eslint-disable-line compat/compat\n } catch (err) {\n return null\n }\n\n // Convert to a File?\n if (toFile) {\n return new File([bytes], opts.name || '', { type: mimeType })\n }\n\n return new Blob([bytes], { type: mimeType })\n}\n"]}
\No newline at end of file