diff --git a/README.md b/README.md index 20b7f573..d543e3d0 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ mithril.js [![NPM Version](https://img.shields.io/npm/v/mithril.svg)](https://ww ## What is Mithril? -A modern client-side Javascript framework for building Single Page Applications. It's small (8.91 KB gzipped), fast and provides routing and XHR utilities out of the box. +A modern client-side Javascript framework for building Single Page Applications. It's small (8.92 KB gzipped), fast and provides routing and XHR utilities out of the box. Mithril is used by companies like Vimeo and Nike, and open source platforms like Lichess 👍. diff --git a/mithril.js b/mithril.js index 797783b3..0b46c1ac 100644 --- a/mithril.js +++ b/mithril.js @@ -314,6 +314,8 @@ var _9 = function($window, Promise) { } if (args.withCredentials) xhr.withCredentials = args.withCredentials if (args.timeout) xhr.timeout = args.timeout + + if (args.responseType) xhr.responseType = args.responseType for (var key in args.headers) if ({}.hasOwnProperty.call(args.headers, key)) { xhr.setRequestHeader(key, args.headers[key]) } diff --git a/mithril.min.js b/mithril.min.js index a571c177..070304ac 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -11,13 +11,13 @@ g){if(Array.isArray(g))for(var k=0;kc.indexOf("?")?"?":"&";c+=e+d}return c}function k(c){try{return""!==c?JSON.parse(c):null}catch(x){throw Error("Invalid JSON: "+ c);}}function n(c){return c.responseText}function m(c,a){if("function"===typeof c)if(Array.isArray(a))for(var d=0;dl.status||304===l.status||Z.test(c.url))d(m(c.type,a));else{var g=Error(l.responseText);g.code=l.status;g.response=a;e(g)}}catch(aa){e(aa)}};g&&null!=c.data?l.send(c.data):l.send()});return!0===c.background?x:E(x)},jsonp:function(c,n){var k=e();c=g(c,n);var x=new d(function(d,e){var g=c.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,n=a.document.createElement("script");a[g]=function(e){n.parentNode.removeChild(n); -d(m(c.type,e));delete a[g]};n.onerror=function(){n.parentNode.removeChild(n);e(Error("JSONP request failed"));delete a[g]};null==c.data&&(c.data={});c.url=q(c.url,c.data);c.data[c.callbackKey||"callback"]=g;n.src=h(c.url,c.data);a.document.documentElement.appendChild(n)});return!0===c.background?x:k(x)},setCompletionCallback:function(c){C=c}}}(window,p),V=function(a){function d(t,b){if(t.state!==b)throw Error("`vnode.state` must not be modified");}function e(t){var b=t.state;try{return this.apply(b, -arguments)}finally{d(t,b)}}function g(t,b,f,c,a,d,e){for(;f'+ +l.setRequestHeader("Content-Type","application/json; charset=utf-8");c.deserialize!==k||c.headers&&c.headers.hasOwnProperty("Accept")||l.setRequestHeader("Accept","application/json, text/*");c.withCredentials&&(l.withCredentials=c.withCredentials);c.timeout&&(l.timeout=c.timeout);c.responseType&&(l.responseType=c.responseType);for(var C in c.headers)({}).hasOwnProperty.call(c.headers,C)&&l.setRequestHeader(C,c.headers[C]);"function"===typeof c.config&&(l=c.config(l,c)||l);l.onreadystatechange=function(){if(!E&& +4===l.readyState)try{var a=c.extract!==n?c.extract(l,c):c.deserialize(c.extract(l,c));if(c.extract!==n||200<=l.status&&300>l.status||304===l.status||Z.test(c.url))d(m(c.type,a));else{var g=Error(l.responseText);g.code=l.status;g.response=a;e(g)}}catch(aa){e(aa)}};g&&null!=c.data?l.send(c.data):l.send()});return!0===c.background?x:E(x)},jsonp:function(c,n){var k=e();c=g(c,n);var x=new d(function(d,e){var g=c.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,n=a.document.createElement("script"); +a[g]=function(e){n.parentNode.removeChild(n);d(m(c.type,e));delete a[g]};n.onerror=function(){n.parentNode.removeChild(n);e(Error("JSONP request failed"));delete a[g]};null==c.data&&(c.data={});c.url=q(c.url,c.data);c.data[c.callbackKey||"callback"]=g;n.src=h(c.url,c.data);a.document.documentElement.appendChild(n)});return!0===c.background?x:k(x)},setCompletionCallback:function(c){C=c}}}(window,p),V=function(a){function d(t,b){if(t.state!==b)throw Error("`vnode.state` must not be modified");}function e(t){var b= +t.state;try{return this.apply(b,arguments)}finally{d(t,b)}}function g(t,b,f,c,a,d,e){for(;f'+ b.children+"",a=a.firstChild):a.innerHTML=b.children;b.dom=a.firstChild;b.domSize=a.childNodes.length;for(b=D.createDocumentFragment();f=a.firstChild;)b.appendChild(f);C(t,b,c)}function k(t,b,f,c,a,d){if(b!==f&&(null!=b||null!=f))if(null==b||0===b.length)g(t,f,0,f.length,c,a,d);else if(null==f||0===f.length)x(b,0,b.length);else{for(var e=0,k=0,v=null,h=null;k=k&&v>=e;)if(A=b[h],y=f[v],null==A)h--;else if(null==y)v--;else if(A.key===y.key)A!==y&&n(t,A,y,c,a,d),null!=y.dom&&(a=y.dom),h--,v--;else break;for(;h>=k&&v>=e;)if(r=b[k],u=f[e],null==r)k++;else if(null==u)e++;else if(r.key===u.key)k++,e++,r!==u&&n(t,r,u,c,l(b,k,a),d);else break;for(;h>=k&&v>=e;){if(null==r)k++;else if(null==u)e++;else if(null==A)h--;else if(null==y)v--;else if(e===v)break;else{if(r.key!== y.key||A.key!==u.key)break;B=l(b,k,a);C(t,m(A),B);A!==u&&n(t,A,u,c,B,d);++e<=--v&&C(t,m(r),a);r!==y&&n(t,r,y,c,a,d);null!=y.dom&&(a=y.dom);k++;h--}A=b[h];y=f[v];r=b[k];u=f[e]}for(;h>=k&&v>=e;){if(null==A)h--;else if(null==y)v--;else if(A.key===y.key)A!==y&&n(t,A,y,c,a,d),null!=y.dom&&(a=y.dom),h--,v--;else break;A=b[h];y=f[v]}if(e>v)x(b,k,h+1);else if(k>h)g(t,f,e,v+1,c,a,d);else{u=a;A=v-e+1;r=Array(A);var G=2147483647,z=0;for(B=0;B=e;B--){if(null==p){p=b;A=k;y=h+1;for(var w=