image-preload
Version:
Simple, framework-agnostic image preloader. Async, sync, background, foreground, whatever!
1 lines • 5.41 kB
JavaScript
var Preload=function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=0)}([function(e,n,t){"use strict";t.r(n);var r=function(e){var n=0,t={},r=new Worker("data:,$$="+e+";onmessage="+function(e){Promise.resolve(e.data[1]).then(function(e){return $$.apply($$,e)}).then(function(n){postMessage([e.data[0],0,n],[n].filter(function(e){return e instanceof ArrayBuffer||e instanceof MessagePort||e instanceof ImageBitmap}))},function(n){postMessage([e.data[0],1,""+n])})});return r.onmessage=function(e){t[e.data[0]][e.data[1]](e.data[2]),t[e.data[0]]=null},function(e){return e=[].slice.call(arguments),new Promise(function(){t[++n]=arguments,r.postMessage([n,e],e.filter(function(e){return e instanceof ArrayBuffer||e instanceof MessagePort||e instanceof ImageBitmap}))})}};t.d(n,"Order",function(){return o});var o,a=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++)for(var o in n=arguments[t])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},i=function(e,n,t,r){return new(t||(t=Promise))(function(o,a){function i(e){try{s(r.next(e))}catch(e){a(e)}}function u(e){try{s(r.throw(e))}catch(e){a(e)}}function s(e){e.done?o(e.value):new t(function(n){n(e.value)}).then(i,u)}s((r=r.apply(e,n||[])).next())})},u=function(e,n){var t,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,r&&(o=r[2&a[0]?"return":a[0]?"throw":"next"])&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[0,o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=n.call(e,i)}catch(e){a=[6,e],r=0}finally{t=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}};!function(e){e[e.AllAtOnce=0]="AllAtOnce",e[e.InOrder=1]="InOrder"}(o||(o={}));var s={order:o.InOrder,timeout:0,shouldContinueOnFail:!0,toBase64:!1,inBackground:!1,onSingleImageFail:function(){},onSingleImageComplete:function(){},onComplete:function(){}};n.default=function(e,n){return i(this,void 0,void 0,function(){function t(e){return i(this,void 0,void 0,function(){var n,t,o,a;return u(this,function(i){switch(i.label){case 0:if(!l.inBackground)return[3,4];n=r(function(e){return new Promise(function(n,t){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.send(),r.addEventListener("load",function(){var e=new FileReader;e.readAsDataURL(r.response),e.addEventListener("loadend",function(){n(e.result)})}),r.addEventListener("error",function(e){t(e)})})}),i.label=1;case 1:return i.trys.push([1,3,,4]),o=(t=l).onSingleImageComplete,[4,n(e)];case 2:return[2,o.apply(t,[i.sent()])];case 3:throw a=i.sent(),l.onSingleImageFail(a),new Error(a);case 4:return[4,function(e){return new Promise(function(n,t){var r=document.createElement("img");r.setAttribute("src",e),r.addEventListener("load",function(e){l.onSingleImageComplete(e),n(e)}),r.addEventListener("error",function(e){l.onSingleImageFail(e),t(e)})})}(e)];case 5:return[2,i.sent()]}})})}var l,c,f,d,p;return u(this,function(r){switch(r.label){case 0:if((l=a({},s,n||{})).timeout&&l.order===o.AllAtOnce)throw new Error("Invalid options: Cannot specify `timeout` options and `AllAtOnce` order.");if(!1===l.toBase64&&!0===l.inBackground)throw new Error("Invalid options: If `inBackground` options is true `toBase64` options must be true as well.");if(!0===l.toBase64&&!1===l.inBackground)throw new Error("Invalid options: If `inBackground` options is false `toBase64` options must be false as well.");return l.order!==o.AllAtOnce?[3,2]:[4,Promise.all(e.map(t))];case 1:r.sent(),r.label=2;case 2:if(l.order!==o.InOrder)return[3,9];c=0,f=e,r.label=3;case 3:if(!(c<f.length))return[3,9];d=f[c],r.label=4;case 4:return r.trys.push([4,7,,8]),[4,(i=l.timeout,new Promise(function(e){return setTimeout(e,i)}))];case 5:return r.sent(),[4,t(d)];case 6:return r.sent(),[3,8];case 7:if(p=r.sent(),!l.shouldContinueOnFail)throw new Error(p);return[3,8];case 8:return c++,[3,3];case 9:return l.onComplete(),[2]}var i})})}}]);