From 2c4c0734afb750591d782e0ad0050cb98a06e4eb Mon Sep 17 00:00:00 2001 From: Gandalf-the-Bot Date: Mon, 23 Jan 2017 23:04:51 +0000 Subject: [PATCH] Bundled output for commit c160daeaab8d674ac398bbc4d9af9a69e6c88e98 [skip ci] --- README.md | 2 +- mithril.js | 28 +++++------------ mithril.min.js | 84 +++++++++++++++++++++++++------------------------- 3 files changed, 51 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index 6e28a5ca..4fa9686e 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.67 KB min+gzip +Despite the huge improvements in performance and modularity, the new codebase is smaller than v0.2.x, currently clocking at 7.61 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 99b78f62..ce452406 100644 --- a/mithril.js +++ b/mithril.js @@ -182,15 +182,12 @@ if (typeof window !== "undefined") { var PromisePolyfill = global.Promise } else { } -var buildQueryString = function(object, dataKeys0) { +var buildQueryString = function(object) { if (Object.prototype.toString.call(object) !== "[object Object]") return "" var args = [] - dataKeys0 = dataKeys0 || Object.keys(object) - for (var i = 0; i < dataKeys0.length; i++) { - var key0 = dataKeys0[i] + for (var key0 in object) { destructure(key0, object[key0]) } - return args.join("&") function destructure(key0, value) { if (Array.isArray(value)) { @@ -210,7 +207,6 @@ var _8 = function($window, Promise) { var callbackCount = 0 var oncompletion function setCompletionCallback(callback) {oncompletion = callback} - function finalizer() { var count = 0 function complete() {if (--count === 0 && typeof oncompletion === "function") oncompletion()} @@ -246,10 +242,9 @@ var _8 = function($window, Promise) { if (typeof args.serialize !== "function") args.serialize = typeof FormData !== "undefined" && args.data instanceof FormData ? function(value) {return value} : JSON.stringify if (typeof args.deserialize !== "function") args.deserialize = deserialize if (typeof args.extract !== "function") args.extract = extract - var dataKeys = args.data && Object.keys(args.data) - args.url = interpolate(args.url, args.data, dataKeys) - if (useBody) args.data = args.serialize(args.data, dataKeys) - else args.url = assemble(args.url, args.data, dataKeys) + args.url = interpolate(args.url, args.data) + if (useBody) args.data = args.serialize(args.data) + else args.url = assemble(args.url, args.data) var xhr = new $window.XMLHttpRequest() xhr.open(args.method, args.url, typeof args.async === "boolean" ? args.async : true, typeof args.user === "string" ? args.user : undefined, typeof args.password === "string" ? args.password : undefined) if (args.serialize === JSON.stringify && useBody) { @@ -312,26 +307,19 @@ var _8 = function($window, Promise) { }) return args.background === true? promise0 : finalize(promise0) } - function interpolate(url, data, dataKeys) { + function interpolate(url, data) { if (data == null) return url var tokens = url.match(/:[^\/]+/gi) || [] for (var i = 0; i < tokens.length; i++) { var key = tokens[i].slice(1) if (data[key] != null) { url = url.replace(tokens[i], data[key]) - - if (Array.isArray(dataKeys)) { - var keyIndex = dataKeys.indexOf(key) - if (keyIndex > -1) { - dataKeys.splice(keyIndex) - } - } } } return url } - function assemble(url, data, dataKeys) { - var querystring = buildQueryString(data, dataKeys) + function assemble(url, data) { + var querystring = buildQueryString(data) if (querystring !== "") { var prefix = url.indexOf("?") < 0 ? "?" : "&" url += prefix + querystring diff --git a/mithril.min.js b/mithril.min.js index 9fe4f6ed..e627e3e3 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -1,42 +1,42 @@ -new function(){function u(a,c,m,d,h,n){return{tag:a,key:c,attrs:m,children:d,text:h,dom:n,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function B(a){if(null==a||"string"!==typeof a&&"function"!==typeof a.view)throw Error("The selector must be either a string or a component.");if("string"===typeof a&&void 0===G[a]){for(var c,m,d=[],h={};c=N.exec(a);){var n=c[1],q=c[2];""===n&&""!==q?m=q:"#"===n?h.id=q:"."===n?d.push(q):"["===c[3][0]&&((n=c[6])&&(n=n.replace(/\\(["'])/g,"$1").replace(/\\\\/g, -"\\")),"class"===c[4]?d.push(n):h[c[4]]=n||!0)}0b.indexOf("?")? -"?":"&",b+=c+a);return b}function q(a){try{return""!==a?JSON.parse(a):null}catch(r){throw Error(a);}}function p(a){return a.responseText}function k(a,c){if("function"===typeof a)if(Array.isArray(c))for(var b=0;bl.status||304===l.status)c(k(b.type,g));else{var e=Error(l.responseText),a;for(a in g)e[a]=g[a];d(e)}}catch(A){d(A)}};m&&null!=b.data?l.send(b.data):l.send()});return!0===b.background?r:l(r)},jsonp:function(b,p){var q=m();b=d(b,p);var t=new c(function(c,d){var m=b.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+l++,p=a.document.createElement("script");a[m]=function(d){p.parentNode.removeChild(p);c(k(b.type,d));delete a[m]};p.onerror= -function(){p.parentNode.removeChild(p);d(Error("JSONP request failed"));delete a[m]};null==b.data&&(b.data={});b.url=h(b.url,b.data);b.data[b.callbackKey||"callback"]=m;p.src=n(b.url,b.data);a.document.documentElement.appendChild(p)});return!0===b.background?t:q(t)},setCompletionCallback:function(a){t=a}}}(window,v),M=function(a){function c(g,e,a,b,c,d,h){for(;a=l&&y>=A;){var w=e[l],x=a[A];if(w!==x||f)if(null==w)l++;else if(null==x)A++;else if(w.key=== -x.key)l++,A++,n(g,w,x,b,p(e,l,d),f,h),f&&w.tag===x.tag&&k(g,q(w),d);else if(w=e[r],w!==x||f)if(null==w)r--;else if(null==x)A++;else if(w.key===x.key)n(g,w,x,b,p(e,r+1,d),f,h),(f||A=l&&y>=A;){w=e[r];x=a[y];if(w!==x||f)if(null==w)r--;else{if(null!=x)if(w.key===x.key)n(g,w,x,b,p(e,r+1,d),f,h),f&&w.tag===x.tag&&k(g,q(w),d),null!=w.dom&&(d=w.dom),r--;else{if(!C){C=e;var w=r,z={},u;for(u=0;ub.indexOf("?")?"?":"&";b+=d+c}return b}function l(a){try{return""!==a?JSON.parse(a):null}catch(A){throw Error(a);}} +function p(a){return a.responseText}function r(a,c){if("function"===typeof a)if(Array.isArray(c))for(var b=0;bn.status||304===n.status)c(r(b.type,a));else{var g=Error(n.responseText),e;for(e in a)g[e]= +a[e];d(g)}}catch(f){d(f)}};k&&null!=b.data?n.send(b.data):n.send()});return!0===b.background?A:q(A)},jsonp:function(b,l){var p=k();b=d(b,l);var u=new c(function(c,d){var k=b.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+q++,l=a.document.createElement("script");a[k]=function(d){l.parentNode.removeChild(l);c(r(b.type,d));delete a[k]};l.onerror=function(){l.parentNode.removeChild(l);d(Error("JSONP request failed"));delete a[k]};null==b.data&&(b.data={});b.url=h(b.url,b.data);b.data[b.callbackKey|| +"callback"]=k;l.src=m(b.url,b.data);a.document.documentElement.appendChild(l)});return!0===b.background?u:p(u)},setCompletionCallback:function(a){u=a}}}(window,w),M=function(a){function c(g,e,a,b,c,d,h){for(;a=t&&A>=n;){var y=e[t],v=a[n];if(y!==v||f)if(null==y)t++;else if(null==v)n++;else if(y.key===v.key)t++,n++,m(g,y,v,b,p(e,t,d),f,h),f&&y.tag===v.tag&&r(g,l(y),d);else if(y=e[q],y!==v||f)if(null==y)q--;else if(null==v)n++;else if(y.key===v.key)m(g,y,v,b,p(e, +q+1,d),f,h),(f||n=t&&A>=n;){y=e[q];v=a[A];if(y!==v||f)if(null==y)q--;else{if(null!=v)if(y.key===v.key)m(g,y,v,b,p(e,q+1,d),f,h),f&&y.tag===v.tag&&r(g,l(y),d),null!=y.dom&&(d=y.dom),q--;else{if(!z){z=e;var y=q,C={},x;for(x=0;x