diff --git a/mithril.js b/mithril.js index 5f2016e4..ed2d5631 100644 --- a/mithril.js +++ b/mithril.js @@ -93,7 +93,7 @@ var _7 = function(log) { function initStream(stream) { stream.constructor = createStream stream._state = {id: guid++, value: undefined, error: undefined, state: 0, derive: undefined, recover: undefined, deps: {}, parents: [], errorStream: undefined, endStream: undefined} - stream.map = map, stream.ap = ap, stream.of = createStream + stream["fantasy-land/map"] = map, stream["fantasy-land/ap"] = ap, stream["fantasy-land/of"] = createStream stream.valueOf = valueOf, stream.toJSON = toJSON, stream.toString = valueOf stream.run = run, stream.catch = doCatch Object.defineProperties(stream, { @@ -112,7 +112,7 @@ var _7 = function(log) { end: {get: function() { if (!stream._state.endStream) { var endStream = createStream() - endStream.map(function(value) { + endStream["fantasy-land/map"](function(value) { if (value === true) unregisterStream(stream), unregisterStream(endStream) return value }) @@ -205,7 +205,7 @@ var _7 = function(log) { updateState(stream, absorbable._state.value, absorbable._state.error) for (var id in stream._state.deps) updateDependency(stream._state.deps[id], false) } - absorbable.map(update).catch(function(e) { + absorbable["fantasy-land/map"](update).catch(function(e) { update() throw {__error: e} }) @@ -245,7 +245,7 @@ var _7 = function(log) { stream._state.deps = {} } function map(fn) {return combine(function(stream) {return fn(stream())}, [this])} - function ap(stream) {return combine(function(s1, s2) {return s1()(s2())}, [this, stream])} + function ap(stream) {return combine(function(s1, s2) {return s1()(s2())}, [stream, this])} function valueOf() {return this._state.value} function toJSON() {return this._state.value != null && typeof this._state.value.toJSON === "function" ? this._state.value.toJSON() : this._state.value} function valid(stream) {return stream._state } @@ -263,6 +263,7 @@ var _7 = function(log) { return streams.map(function(s) {return s()}) }, streams) } + createStream["fantasy-land/of"] = createStream createStream.merge = merge createStream.combine = combine createStream.reject = reject diff --git a/mithril.min.js b/mithril.min.js index f1770413..ca29f4ea 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -1,42 +1,42 @@ -new function(){function v(b,e,l,f,h,k){return{tag:b,key:e,attrs:l,children:f,text:h,dom:k,domSize:void 0,state:{},events:void 0,instance:void 0,skip:!1}}function w(b){if(null==b||"string"!==typeof b&&null==b.view)throw Error("The selector must be either a string or a component.");if("string"===typeof b&&void 0===F[b]){for(var e,l,f=[],h={};e=O.exec(b);){var k=e[1],q=e[2];""===k&&""!==q?l=q:"#"===k?h.id=q:"."===k?f.push(q):"["===e[3][0]&&((k=e[6])&&(k=k.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")), -h[e[4]]=k||!0)}0d.filter(D).length)throw Error("Ensure that each item passed to m.prop.combine/m.prop.merge is a stream");return y(e(),d,function(){var b= -d.filter(L);if(0b.indexOf("?")?"?":"&";b+=k+f}return b}function h(b){try{return""!==b?JSON.parse(b):null}catch(e){throw Error(b);}}function k(b){return b.responseText}function q(b,e){if("function"===typeof b)if(e instanceof Array)for(var f=0;ft.status||304=== -t.status)u(q(g.type,b));else{var e=Error(t.responseText),f;for(f in b)e[f]=b[f];u.error(e)}}catch(x){u.error(x)}"function"===typeof p&&p()}};x?t.send(g.data):t.send();return u},jsonp:function(g){var k=e();void 0!==g.initialValue&&k(g.initialValue);var x=g.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+m++,h=b.document.createElement("script");b[x]=function(e){h.parentNode.removeChild(h);k(q(g.type,e));"function"===typeof p&&p();delete b[x]};h.onerror=function(){h.parentNode.removeChild(h); -k.error(Error("JSONP request failed"));"function"===typeof p&&p();delete b[x]};null==g.data&&(g.data={});g.url=l(g.url,g.data);g.data[g.callbackKey||"callback"]=x;h.src=f(g.url,g.data);b.document.documentElement.appendChild(h);return k},setCompletionCallback:function(b){p=b}}}(window,M),I=function(){var b=[];return{subscribe:b.push.bind(b),unsubscribe:function(e){e=b.indexOf(e);-1=h&&t>=u;){var z=a[h],n=d[u];if(z!==n||r)if(null!=z&&null!=n&&z.key===n.key)h++,u++,k(c,z,n,b,m(a,h,f),r,x),r&&z.tag===n.tag&&p(c,q(z),f);else if(z=a[y],z!==n||r)if(null!=z&&null!=n&&z.key===n.key)k(c,z,n,b,m(a,y+1,f),r,x),(r||u=h&&t>=u;){z=a[y];n=d[t];if(z!==n||r)if(null!=z&&null!=n&&z.key===n.key)k(c,z,n,b,m(a,y+1,f),r,x),r&&z.tag===n.tag&&p(c,q(z),f),null!=z.dom&&(f=z.dom),y--;else{if(!A){A=a;var z=y,v={},w;for(w= -0;wd.filter(G).length)throw Error("Ensure that each item passed to m.prop.combine/m.prop.merge is a stream"); +return u(f(),d,function(){var e=d.filter(B);if(0e.indexOf("?")?"?":"&";e+=g+f}return e}function k(e){try{return""!==e?JSON.parse(e):null}catch(l){throw Error(e);}}function h(e){return e.responseText}function v(e,b){if("function"===typeof e)if(b instanceof Array)for(var f=0;ft.status||304===t.status)l(v(e.type,b));else{var f=Error(t.responseText),g;for(g in b)f[g]=b[g];l.error(f)}}catch(D){l.error(D)}"function"===typeof n&&n()}};y?t.send(e.data):t.send();return l},jsonp:function(e){var l=f();void 0!==e.initialValue&&l(e.initialValue);var h=e.callbackName||"_mithril_"+Math.round(1E16*Math.random())+"_"+w++,k=b.document.createElement("script");b[h]=function(f){k.parentNode.removeChild(k);l(v(e.type,f));"function"===typeof n&&n();delete b[h]};k.onerror=function(){k.parentNode.removeChild(k); +l.error(Error("JSONP request failed"));"function"===typeof n&&n();delete b[h]};null==e.data&&(e.data={});e.url=m(e.url,e.data);e.data[e.callbackKey||"callback"]=h;k.src=g(e.url,e.data);b.document.documentElement.appendChild(k);return l},setCompletionCallback:function(b){n=b}}}(window,O),M=function(){var b=[];return{subscribe:b.push.bind(b),unsubscribe:function(f){f=b.indexOf(f);-1=p&&y>=B;){var r=a[p],u=d[B];if(r!==u||q)if(null!=r&&null!=u&&r.key===u.key)p++,B++,h(c,r,u,b,w(a,p,g),q,l),q&&r.tag===u.tag&&n(c,v(r),g);else if(r=a[k],r!==u||q)if(null!=r&&null!=u&&r.key===u.key)h(c,r,u,b,w(a,k+1,g),q,l),(q||B=p&&y>=B;){r=a[k];u=d[y];if(r!==u||q)if(null!=r&&null!=u&&r.key===u.key)h(c,r,u,b,w(a,k+1,g),q,l),q&&r.tag===u.tag&&n(c,v(r),g),null!=r.dom&&(g=r.dom),k--;else{if(!t){t=a;var r=k,C={},E;for(E= +0;E