From 8f08fddb64881ecaea614bac050b19d85044b0d2 Mon Sep 17 00:00:00 2001 From: Gandalf-the-Bot Date: Sat, 3 Dec 2016 02:20:48 +0000 Subject: [PATCH] Bundled output for commit 0dce0e7911971e9f77602731303808b36bcf0420 [skip ci] --- README.md | 2 +- mithril.js | 26 ++++++++++------ mithril.min.js | 82 +++++++++++++++++++++++++------------------------- 3 files changed, 58 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 0256ede0..3aba4247 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,6 @@ There are over 4000 assertions in the test suite, and tests cover even difficult ## Modularity -Despite the huge improvements in performance and modularity, the new codebase is smaller than v0.2.x, currently clocking at 7.45 KB min+gzip +Despite the huge improvements in performance and modularity, the new codebase is smaller than v0.2.x, currently clocking at 7.46 KB min+gzip In addition, Mithril is now completely modular: you can import only the modules that you need and easily integrate 3rd party modules if you wish to use a different library for routing, ajax, and even rendering diff --git a/mithril.js b/mithril.js index 5a39e5fc..211b0d51 100644 --- a/mithril.js +++ b/mithril.js @@ -221,14 +221,18 @@ var _8 = function($window, Promise) { return promise0 } } - - function request(args, extra) { - var finalize = finalizer() + function normalize(args, extra) { if (typeof args === "string") { var url = args args = extra || {} if (args.url == null) args.url = url } + return args + } + + function request(args, extra) { + var finalize = finalizer() + args = normalize(args, extra) var promise0 = new Promise(function(resolve, reject) { if (args.method == null) args.method = "GET" args.method = args.method.toUpperCase() @@ -270,10 +274,12 @@ var _8 = function($window, Promise) { if (useBody && (args.data != null)) xhr.send(args.data) else xhr.send() }) - return args.redraw === false ? promise0 : finalize(promise0) + return args.background === true ? promise0 : finalize(promise0) } - function jsonp(args) { + function jsonp(args, extra) { var finalize = finalizer() + args = normalize(args, extra) + var promise0 = new Promise(function(resolve, reject) { var callbackName = args.callbackName || "_mithril_" + Math.round(Math.random() * 1e16) + "_" + callbackCount++ var script = $window.document.createElement("script") @@ -293,7 +299,7 @@ var _8 = function($window, Promise) { script.src = assemble(args.url, args.data) $window.document.documentElement.appendChild(script) }) - return args.redraw === false? promise0 : finalize(promise0) + return args.background === true? promise0 : finalize(promise0) } function interpolate(url, data) { if (data == null) return url @@ -983,7 +989,7 @@ var coreRouter = function($window) { var callAsync0 = typeof setImmediate === "function" ? setImmediate : setTimeout var prefix1 = "#!" function setPrefix(value) {prefix1 = value} - function normalize(fragment0) { + function normalize1(fragment0) { var data = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent) if (fragment0 === "pathname" && data[0] !== "/") data = "/" + data return data @@ -1016,9 +1022,9 @@ var coreRouter = function($window) { function getPath() { var type2 = prefix1.charAt(0) switch (type2) { - case "#": return normalize("hash").slice(prefix1.length) - case "?": return normalize("search").slice(prefix1.length) + normalize("hash") - default: return normalize("pathname").slice(prefix1.length) + normalize("search") + normalize("hash") + case "#": return normalize1("hash").slice(prefix1.length) + case "?": return normalize1("search").slice(prefix1.length) + normalize1("hash") + default: return normalize1("pathname").slice(prefix1.length) + normalize1("search") + normalize1("hash") } } function setPath(path, data, options) { diff --git a/mithril.min.js b/mithril.min.js index 9af6482c..f0a924aa 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -1,41 +1,41 @@ -new function(){function v(a,f,g,c,d,h){return{tag:a,key:f,attrs:g,children:c,text:d,dom:h,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function A(a){if(null==a||"string"!==typeof a&&null==a.view)throw Error("The selector must be either a string or a component.");if("string"===typeof a&&void 0===I[a]){for(var f,g,c=[],d={};f=O.exec(a);){var h=f[1],q=f[2];""===h&&""!==q?g=q:"#"===h?d.id=q:"."===h?c.push(q):"["===f[3][0]&&((h=f[6])&&(h=h.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")), -"class"===f[4]?c.push(h):d[f[4]]=h||!0)}0b.indexOf("?")?"?":"&";b+=d+c}return b} -function h(b){try{return""!==b?JSON.parse(b):null}catch(k){throw Error(b);}}function q(b){return b.responseText}function n(b,a){if("function"===typeof b)if(a instanceof Array)for(var c=0;cm.status||304===m.status)f(n(b.type,a));else{var c=Error(m.responseText), -d;for(d in a)c[d]=a[d];k(c)}}catch(G){k(G)}};g&&null!=b.data?m.send(b.data):m.send()});return!1===b.redraw?t:m(t)},jsonp:function(b){var k=g(),h=new f(function(f,h){var k=b.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+m++,g=a.document.createElement("script");a[k]=function(c){g.parentNode.removeChild(g);f(n(b.type,c));delete a[k]};g.onerror=function(){g.parentNode.removeChild(g);h(Error("JSONP request failed"));delete a[k]};null==b.data&&(b.data={});b.url=c(b.url,b.data);b.data[b.callbackKey|| -"callback"]=k;g.src=d(b.url,b.data);a.document.documentElement.appendChild(g)});return!1===b.redraw?h:k(h)},setCompletionCallback:function(a){r=a}}}(window,"undefined"!==typeof Promise?Promise:x),N=function(a){function f(e,l,a,b,c,d,f){for(;a=u&&y>=z;){var w=l[u],r=a[z];if(w!==r||p)if(null==w)u++;else if(null==r)z++;else if(w.key===r.key)u++,z++,h(e,w,r,c,n(l,u,d),p,k),p&&w.tag===r.tag&&m(e,q(w),d);else if(w=l[t],w!==r||p)if(null==w)t--;else if(null==r)z++;else if(w.key=== -r.key)h(e,w,r,c,n(l,t+1,d),p,k),(p||z=u&&y>=z;){w=l[t];r=a[y];if(w!==r||p)if(null==w)t--;else{if(null!=r)if(w.key===r.key)h(e,w,r,c,n(l,t+1,d),p,k),p&&w.tag===r.tag&&m(e,q(w),d),null!=w.dom&&(d=w.dom),t--;else{if(!E){E=l;var w=t,v={},C;for(C=0;Cb.indexOf("?")?"?":"&";b+=d+c}return b}function m(b){try{return""!==b?JSON.parse(b):null}catch(C){throw Error(b);}}function z(b){return b.responseText}function n(b,a){if("function"===typeof b)if(a instanceof Array)for(var c=0;cg.status||304===g.status)c(n(b.type, +a));else{var d=Error(g.responseText),h;for(h in a)d[h]=a[h];f(d)}}catch(G){f(G)}};k&&null!=b.data?g.send(b.data):g.send()});return!0===b.background?r:v(r)},jsonp:function(b,k){var m=g();b=c(b,k);var r=new f(function(c,f){var g=b.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+t++,k=a.document.createElement("script");a[g]=function(d){k.parentNode.removeChild(k);c(n(b.type,d));delete a[g]};k.onerror=function(){k.parentNode.removeChild(k);f(Error("JSONP request failed"));delete a[g]};null== +b.data&&(b.data={});b.url=d(b.url,b.data);b.data[b.callbackKey||"callback"]=g;k.src=h(b.url,b.data);a.document.documentElement.appendChild(k)});return!0===b.background?r:m(r)},setCompletionCallback:function(a){k=a}}}(window,"undefined"!==typeof Promise?Promise:u),M=function(a){function f(e,l,a,b,c,d,f){for(;a=w&&v>=y;){var x=l[w],q=a[y];if(x!==q||p)if(null==x)w++;else if(null==q)y++;else if(x.key===q.key)w++,y++,h(e,x,q,b,z(l,w,c),p,d),p&&x.tag===q.tag&&n(e,m(x),c);else if(x=l[r],x!==q||p)if(null== +x)r--;else if(null==q)y++;else if(x.key===q.key)h(e,x,q,b,z(l,r+1,c),p,d),(p||y=w&&v>=y;){x=l[r];q=a[v];if(x!==q||p)if(null==x)r--;else{if(null!=q)if(x.key===q.key)h(e,x,q,b,z(l,r+1,c),p,d),p&&x.tag===q.tag&&n(e,m(x),c),null!=x.dom&&(c=x.dom),r--;else{if(!t){t=l;var x=r,C={},u;for(u=0;u