Comparing version 0.3.0-alpha.15 to 0.3.0-alpha.16
@@ -1,2 +0,2 @@ | ||
/*! lazychain v0.3.0-alpha.15 | (c) 2014, falsandtru | MIT Licence */ | ||
!new function(a,b){"use strict";var c;!function(a){var b;!function(a){a.args2array=function(a){for(var b=a.length,c=Array(b),d=0;b>d;d++)c[d]=a[d];return c}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b,c){var d=void 0===b;switch(c.length){case 0:return d?a():a.call(b);case 1:return d?a(c[0]):a.call(b,c[0]);case 2:return d?a(c[0],c[1]):a.call(b,c[0],c[1]);case 3:return d?a(c[0],c[1],c[2]):a.call(b,c[0],c[1],c[2]);case 4:return d?a(c[0],c[1],c[2],c[3]):a.call(b,c[0],c[1],c[2],c[3]);case 5:return d?a(c[0],c[1],c[2],c[3],c[4]):a.call(b,c[0],c[1],c[2],c[3],c[4]);case 6:return d?a(c[0],c[1],c[2],c[3],c[4],c[5]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5]);case 7:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6]);case 8:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]);case 9:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]);default:return a.apply(b,c)}}a.apply=b}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){if(0>a){for(var c=-a,d=c%8;d--;)b(--c);for(;c;)b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c)}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)b(c++);for(;f--;)b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++)}}function c(a,b){if(0>a){for(var c=-a,d=c%8;d--;)if(!1===b(--c))return;for(;c;){if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return}}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)if(!1===b(c++))return;for(;f--;){if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return}}}a.duff=b,a.duffbk=c}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){switch(!0){case"string"==typeof a:var d=a;return Array(b+1).join(d);case a instanceof Array:var e=a.length;if(300>b){var f=Array(b);c(-b,function(b){return f[b]=a[b%e]})}else{for(var f=a.slice();2*f.length<=b;)f=f.concat(f);f=f.concat(f.slice(0,b-f.length))}return f}}var c=a.duff;a.repeat=b}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.UTILITY.repeat;b.id=function(){var a={};return{rest:function(){return a}}}(),b.type=function(){function a(e,f,g,h){switch(typeof f){case"undefined":if(null===e)return"null";var i=typeof e;return"object"===i||"function"===i?b[c.call(e)]||"object":i;case"string":var j=a(e);return f===j||f.length>j.length+5&&f.indexOf(j)>-1;default:return d(e,f,g,h)}}var b={},c=b.toString;return"Boolean Number String Function Array Date RegExp Object Error".split(/\s+/).forEach(function(a,c){return b["[object "+a+"]"]=a.toLowerCase()}),a}();var d=function(){function a(a,c,l,m,n,o){if(void 0===l&&(l=1),void 0===m&&(m=k),void 0===n&&(n=!1),void 0===o&&(o=[]),0>m)return!1;if(c.length>1&&c[c.length-1]===b.id.rest())return d(a,c.slice(0,-1),l,m,!0,o);if(0===o.length&&(a=e(a),a=f(a,c)),n&&c.length<a.length&&(c=g(a,c)),a.length!==c.length)return!1;for(var p,q,r=0,s=a.length;s>r;r++)switch(p=a[r],q=c[r],b.type(q)){case"undefined":continue;case"null":if(null===p||void 0===p)continue;return!1;case"boolean":case"string":if(q===p)continue;return!1;case"number":if(q===p||b.type(p,"number")&&isNaN(p)&&isNaN(q))continue;return!1;case"date":if(b.type(p,"date")&&p.getUTCMilliseconds()===q.getUTCMilliseconds())continue;return!1;case"array":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"array")&&i(p,q,l,m-1,o.concat([p])))continue;return!1;case"object":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"object")&&j(p,q,l,m-1,o.concat([p])))continue;return!1;case"function":if(void 0===p||null===p||b.type(p,"number")&&isNaN(p))return!1;switch(q){case Boolean:if(b.type(p,"boolean"))continue;return!1;case Number:if(b.type(p,"number"))continue;return!1;case String:if(b.type(p,"string"))continue;return!1;case Date:if(b.type(p,"date"))continue;return!1;case Array:if(b.type(p,"array"))continue;return!1;case Object:if(b.type(p,"object"))continue;return!1;case RegExp:if(b.type(p,"regexp"))continue;return!1;case Function:case Error:default:if(!b.type(p,"function")||p===Function||h(q)?p.constructor===q||p instanceof q&&!h(q):q===p||q.toString()===p.toString()&&j(p,q,l,m-1,o.concat([p])))continue;return!1}case"error":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.name===p.name&&q.message===p.message)continue;return!1;case"regexp":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.source===p.source&&q.global===p.global&&q.ignoreCase===p.ignoreCase&&q.multiline===p.multiline)continue;return!1;default:throw new Error("Undefined pattern.")}return!0}function e(a){if(a instanceof Array)return a.slice();for(var b=[],c=0;c<a.length;c++)b[c-0]=a[c];return b}function f(a,b){for(var c=a.length;void 0===a[--c]&&c+1>b.length;);return a.slice(0,c+1)}function g(a,b){return b.concat(c(b.slice(-1),a.length-b.length))}function h(a){var b="string"==typeof a.name?a.name:a.toString().match(l).pop()+" ",c=b.charAt(0),d=b.charAt(1);return c>="A"&&"Z">=c&&!(d>="A"&&"Z">=d)}function i(a,b,c,e,f){var g=a.length,h=b.length;return h-1>g?!1:(1===h&&c>0&&g>2*c&&(a=a.slice(0,c).concat(a.slice(-c))),d(a,b,c,e,1===h,f))}function j(a,b,c,e,f){if(Object.keys(a).length!==Object.keys(b).length)return!1;var g=[];for(var h in a)if(g.push(h),!(h in b)||a[h]!==b[h]&&!d([a[h]],[b[h]],c,e,!1,f))return!1;for(var h in b)if(0===g.length||g.shift()!==h)return!1;return!0}var k=9,l=/function\s*([^(]*)/;return a}()}(b=a.TYPE||(a.TYPE={}))}(c||(c={}));var c;!function(a){var b;!function(b){function c(a){return e(a,"object")&&"then"in a}var d=a.FUNCTION.apply,e=a.TYPE.type;b.isThenable=c,b.resolve="function"==typeof Promise?Promise.resolve.bind(Promise):function(a){return b.deferred().resolve(a)},b.reject=function(a){return b.deferred().reject(a)},b.when=function(a){function e(a,b){c(b)?b.then(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return f(a,b)},g.reject,g.notify):f(a,[b])}function f(a,b){0!==h&&"pending"===g.state()&&(h-=1,i[a]=b,0===h&&d(g.resolve,void 0,i))}if(0===a.length)return b.deferred().resolve([]);for(var g=b.deferred(),h=a.length,i=Array(h),j=0,k=a.length;k>j;j++)e(j,a[j]);return g.promise()},b.deferred=function(){return function(a){function c(a,b,c){for(var d,e=0,g=b.length;g>e;e++){var h=b[e];c.push(h),d=f(a,[h])}return o!==l&&c.splice(0,c.length),d}function f(a,b){for(var c,e=0,f=a?b.length:0;f>e;e++)c=d(b[e],void 0,a);return c}function g(a){var b=[];if(a instanceof Array)for(var c=a.length;c--;){var d=a[c];d instanceof Array?b=b.concat(g(d)):b.push(d)}return b}var h,i,j,k,l="pending",m="resolved",n="rejected",o=l,p=[],q=[],r=[],s=[],t={state:function(){return o},progress:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&c(h,g(a),p),this},done:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===m)&&c(i,g(a),q),this},fail:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===n)&&c(j,g(a),r),this},always:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return c(k,g(a),s),this},then:function(a,f,g){function k(a,b,f,g){b&&c(a,[function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];var f;"function"==typeof b?(f=d(b,void 0,a),e(f,"object")&&e(f.then,"function")?f.then(s.notify,s.notify,s.notify):g(f)):(b.forEach(function(b){return d(b,void 0,a)}),g())}],f)}var s=b.deferred();return o===l&&k(h,g,p,s.notify),(o===l||o===m)&&k(i,a,q,s.resolve),(o===l||o===n)&&k(j,f,r,s.reject),s.promise()},promise:function(){return{state:t.state,progress:t.progress,done:t.done,fail:t.fail,always:t.always,then:t.then}},notify:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(h=a,f(h,p)),this},resolve:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(i=a,k=a,f(a,q.concat(s)),p=[],q=[],s=[],o=m),this},reject:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(j=a,k=a,f(a,r.concat(s)),p=[],r=[],s=[],o=n),this}};return a&&a(t.resolve,t.reject,t.notify),t}}()}(b=a.PROMISE||(a.PROMISE={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.memoize=function(a){var b;return function(){return void 0===b&&(b=a()),b}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.v4=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16).toUpperCase()})}}(b=a.UUID||(a.UUID={}))}(c||(c={}));var d;!function(a){a.APPLY=c.FUNCTION.apply,a.TYPE=c.TYPE.type,a.PROMISE=c.PROMISE,a.MEMOIZE=c.FUNCTION.memoize,a.UUID=c.UUID.v4;var b;!function(a){a.rest=c.TYPE.id.rest}(b=a.ID||(a.ID={}))}(d||(d={}));var d;!function(c){var d;!function(d){var e=function(){function e(f,g,h){var i=this;void 0===g&&(g=[]),void 0===h&&(h=null),this.NAME=a,this.VERSION=b,this.__LazyChain__={extensions:null,parent:null,child:null,deferred:null,command:null,monad:null,transfer:function(a,b){return i.__LazyChain__.command=[a,b],i.__LazyChain__.child=c.APPLY(d[a],void 0,[i].concat(b))}},this.lazy=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("lazy",b)}}(),this.stream=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("stream",b)}}(),this.pattern=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("pattern",b)}}(),this.monad=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monad",b)}}(),this.monadic=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monadic",b)}}(),this.array=function(){var a=i;return function(){var b;return a.some(function(a,c,d){return b=d}),b||[]}}(),this.prevChain=function(){var a=i;return function(){return a.__LazyChain__.parent}}(),this.nextChain=function(){var a=i;return function(){return a.__LazyChain__.child}}(),this.firstChain=function(){var a=i;return function(){return a.prevChain()&&a.prevChain().firstChain()||a}}(),this.lastChain=function(){var a=i;return function(){return a.nextChain()&&a.nextChain().lastChain()||a}}(),h&&(h.__LazyChain__.child=this,this.__LazyChain__.monad=h.__LazyChain__.monad,this.__LazyChain__.extensions=h.__LazyChain__.extensions),this.__LazyChain__.parent=h,e.map||d.extendStream_(!0,Array.prototype,0,["reverse","slice","sort","every","some","forEach","filter","map","reduce","reduceRight"]),d.mixin(this,this.__LazyChain__.deferred=c.PROMISE.deferred()),this.__LazyChain__.extensions=this.__LazyChain__.extensions||g,this.__LazyChain__.extensions.forEach(function(a){return d.emulate(i,a)});var j=this.__LazyChain__.deferred;f instanceof Array?f.length&&c.APPLY(j.notify,void 0,f):f instanceof e?f.progress(j.notify).done(j.resolve).fail(j.reject):c.PROMISE.isThenable(f)&&f.then(j.notify,j.notify,j.notify)}return e}();d.Stream=e}(d=c.CONTROLLER||(c.CONTROLLER={}))}(d||(d={}));var d;!function(a){var b;!function(b){function c(a,b){return"progress"in a&&"always"in a&&"notify"in b?a.progress(b.notify).always(b.resolve):a.then(b.resolve,b.reject),b}function d(a,b){return void 0===b&&(b=a),new v(b,a.__LazyChain__.extensions,a)}function f(b,c){return b.nextChain()?(c=c||new v(null,b.__LazyChain__.extensions),f(b.nextChain(),a.APPLY(c[b.__LazyChain__.command[0]],c,b.__LazyChain__.command[1]))):c}function g(b){if(!(a.TYPE(b,"object")&&"prototype"in b))return b;switch(b.prototype){case null:return Object.create(null);case void 0:case!1:return b;case!0:if(b.constructor&&b.constructor!==Object)return new b.constructor;var c=function(){};return c.prototype=b,new c;default:return Object.create(b)}}function h(b){var c="function"==typeof setImmediate?setImmediate:function(a){return setTimeout(a,1)};return b.lazy(function(b,d,f){if(!(d>0)){var g=e.deferred();return c(function(b){return a.APPLY(g.resolve,void 0,f)}),g}})}function i(b,c,e,f){function h(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return a.reduce(i,[])}function i(b,d,g,h){var i,m=l?c(d,g,h,e,i=a.PROMISE.deferred()):c(d,g,h,e);return(i=a.PROMISE.isThenable(m)?m:i)?(f?(b.push(i),g+1===h.length&&a.PROMISE.when(b).then(j,k.notify,k.notify)):"progress"in i&&"always"in i?i.progress(k.notify).always(k.notify):i.then(k.notify,k.notify,k.notify),b):b}function j(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return b.forEach(function(b){return a.APPLY(k.notify,void 0,b)})}"boolean"==typeof e&&void 0===f&&(f=e,e={}),e=g(e);var k=d(b,null),l=5===c.length;return c&&b.progress(h).always(h),k}function j(b,c){function f(){return i.notify(j.sentinel)}function g(a){return Date.now()-a>c}function h(a){return a===j.sentinel}var i=d(b),j={prototype:!0,buffer:[],sentinel:{},timer:0,last:0},k=0>c;return c=Math.abs(c),i.lazy(function(b,d,i,j){if(h(b)||j.buffer.push(b),0===j.timer)j.timer=setTimeout(f,c),j.last=Date.now();else if(k&&!h(b))clearTimeout(j.timer),j.timer=setTimeout(f,c);else if(g(j.last)||h(b)){clearTimeout(j.timer),j.timer=0,j.last=Date.now();var l=e.deferred();return a.APPLY(l.resolve,l,j.buffer.splice(0,j.buffer.length))}},j)}function k(a,b,c){function e(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];return a.forEach(function(a,d,e){return b(a,d,e,c)})}return void 0===c&&(c={}),c=g(c),b&&a.progress(e).always(e),d(a)}function l(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(d,a)}),f?b.cascade(d):d}function m(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(a,d)}),f?b.cascade(d):d}function n(a,b){return b.reduceRight(function(a,b){return m(f(b.firstChain()).firstChain(),[a],!1).lastChain()},a)}function o(b,c,e,f){function h(b,c){switch(!0){case!b:return[c,null];case a.PROMISE.isThenable(b):return[c,b];case b instanceof Array&&1===b.length&&!a.PROMISE.isThenable(b[0]):return b[0][""]=c,b[0];case b instanceof Array:return b.unshift(c),b[1]=b[1]||null,b}}void 0===f&&(f={}),f=g(f);var i=d(b,null),j=d(b);return e=h(e,i),j.reduce(function(a,b,d,e){a=d?a:Object.create(null);var g=c.call(void 0,b,d,e,f);return g="boolean"==typeof g?+!g:g,g in a||(a[g]=[]),a[g].push(b),a},null).forEach(function(b){Object.keys(b).filter(function(a){return!!b[a].length}).forEach(function(c){var d=c in e?e[c]||function(a){return void 0}:null;"function"==typeof d?a.APPLY(d,void 0,b[c]):a.APPLY(d.notify,void 0,b[c])})}),i}function p(b,c){function e(b){var d=Array(b.length);return b.forEach(function(b,e){for(var f,g=0,h=c.length;h>g;g++){f=g>0&&c[g-1][0]===c[g][0]?f:a.TYPE([b],[c[g][0]]);var i=c[g],j=i.length;if(f){if(1===j)return d[e]=b;if(2===j)return d[e]=i[1](b);if(3===j&&i[1](b))return d[e]=i[2](b)}}d[e]=b}),d}c=c.concat([[void 0,function(a){return a}]]);var f=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function q(a){return a}function r(a){return a}function s(b,c,e){switch(void 0===e&&(e=!0),b.__LazyChain__.monad=c,e){case!0:return q(d(b.map(function(a){return c["return"].call(void 0,a)})));case!1:return q(d(b));default:return q(d(b.map(function(b){return a.TYPE([b],[e])?c["return"].call(void 0,b):b})))}}function t(b,c){function e(d){var e=Array(d.length);return d.forEach(function(d,f){for(var g,h=0,i=c.length;i>h;h++){g=h>0&&c[h-1][0]===c[h][0]?g:a.TYPE([d],[c[h][0]]);var j=c[h],k=j.length,l=b.__LazyChain__.monad;if(g){if(1===k)return e[f]=d;if(2===k)return e[f]=l.bind(d,j[1]);if(3===k&&l.bind(d,j[1]))return e[f]=l.bind(d,j[2])}}e[f]=l.fail(d)}),e}c=c.concat([[void 0,r(b).__LazyChain__.monad.fail]]);var f=q(d(r(b),null));return r(b).progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function u(b,c,e,f,g){function h(b){var d,h=g?a.APPLY(f[e],f,[b].concat(c)):a.APPLY(f[e],b,c);switch(e){case"every":case"some":d=h?b:[];break;case"reduce":case"reduceRight":d=[h];break;case"forEach":d=[];break;default:d=h instanceof Array?h:[]}return d}var i=b.__LazyChain__.child=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.notify,void 0,h(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.resolve,void 0,h(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.reject,void 0,h(b))}),i}var v=a.CONTROLLER.Stream;b.cascade=d,b.immediate=h,b.lazy=i,b.buffer=j,b.stream=k,b.branch=l,b.merge=m,b.compose=n,b.split=o,b.pattern=p,b.monad=s,b.monadic=t,b.emulator=u}(b=a.MODEL||(a.MODEL={}))}(d||(d={}));var c;!function(a){var b;!function(b){function c(a){try{return a&&"object"==typeof a?JSON.stringify(a):a+""}catch(b){return a+""}}function d(a,b,c){var d;if(b in a){if(d=a[b],d[0][0]!==c)for(var e=1,f=d.length;f>e;e++)if(d[e][0]===c){d.unshift(d.splice(e,1).pop());break}}else d=a[b]=[[c,void 0,Object.create(null)]];return d}function e(a,b,c,d,e,g){var h=a[0];return 0===a.length||h[0]!==b?(h=[b,f(c,void 0,d),Object.create(null)],a.unshift(h)):void 0===h[1]&&(h[1]=f(c,void 0,d)),a.length>e+g&&a.splice(e,e+g),h}var f=a.FUNCTION.apply;b.cache=function(a,b){void 0===b&&(b=5);var f,g,h;return function(){for(var i=[],j=0;j<arguments.length;j++)i[j-0]=arguments[j];var k,l,m=arguments.length;if(0===m)return void 0===h&&(h=a()),h;g=void 0===g?b>20&&10||Math.floor(b/2):g;for(var n,o=f=f||Object.create(null),p=0;m>p;p++)o=p?n[2]:o,k=i[p],l=k&&"object"==typeof k?c(k):k+"",n=e(d(o,l,k),k,a,i,b,g);return n[1]}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.FUNCTION.cache;b.store=function(a){void 0===a&&(a=10);var b,d=c(function(a){return b},a),e=function(a,c){return b=c,d(a)};return function(a,b){if(void 0===b)return e(a);if(b===e(a,b))return b;throw Error(a)}}}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var d;!function(a){var b;!function(b){function d(){var d;return d=function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b.core,void 0,c)},d.id=a.ID,d.uuid=a.UUID,d.args2array=c.FUNCTION.args2array,d.type=a.TYPE,d.memoize=c.FUNCTION.memoize,d.cache=c.FUNCTION.cache,d.store=c.UTILITY.store,d.resolve=a.PROMISE.resolve,d.reject=a.PROMISE.reject,d.deferred=a.PROMISE.deferred,d.when=a.PROMISE.when,d.repeat=c.UTILITY.repeat,d.duff=c.UTILITY.duff,d.duffbk=c.UTILITY.duffbk,d}function f(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];switch(!0){case a.TYPE(c,[!0]):return void g(!0,!1);case a.TYPE(c,[!1]):return void g(!1,!1);case a.TYPE(c,[!0,Array.prototype]):return void g(!0,!0);case a.TYPE(c,[!1,Array.prototype]):return void g(!1,!0);case a.TYPE(c,[!0,Function]):return void h(!0,c[1],1);case a.TYPE(c,[!1,Function]):return void h(!1,c[1],1);case a.TYPE(c,[]):return new b.Stream;case a.TYPE(c,[Function]):return new b.Stream(void 0,[c[0]]);case a.TYPE(c,[Array]):return new b.Stream(c[0]);case a.TYPE(c,[Array,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,a.ID.rest()]):return(new b.Stream).stream(c)}}function g(c,d){["lazy","stream"].forEach(function(f){c?Object.defineProperty(Array.prototype,f,{configurable:!0,writable:!0,enumerable:d,value:function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b[f],void 0,[e(this)].concat(c))}}):delete Array.prototype[f]})}function h(c,d,e,f){void 0===f&&(f=[]),c?Object.keys(d).concat(f).filter(function(a){return!b.Stream.prototype[a]&&"function"==typeof d[a]}).forEach(function(c){b.Stream.prototype[c]=function(){for(var b=[],f=0;f<arguments.length;f++)b[f-0]=arguments[f];return this.__LazyChain__.command=[c,b],a.MODEL.emulator(this,b,c,d,e)},Object.defineProperty(b.Stream.prototype[c],"provider",{configurable:!1,writable:!1,enumerable:!1,value:d})}):Object.keys(d).concat(f).filter(function(a){return!!b.Stream.prototype[a]&&b.Stream.prototype[a].provider===d}).forEach(function(a){return delete b.Stream.prototype[a]})}function i(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.lazy(e,c[1]);case a.TYPE(c,[b.Stream,Function,Boolean]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0,Boolean]):return a.MODEL.lazy(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream]):return a.MODEL.immediate(e);case a.TYPE(c,[b.Stream,Number]):return a.MODEL.buffer(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function j(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.stream(e,c[1]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.stream(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Object,a.ID.rest()]):return a.MODEL.compose(e,c.slice(1));case a.TYPE(c,[b.Stream]):return e;case a.TYPE(c,[b.Stream,!0,[Object]]):return a.MODEL.branch(e,c[2]);case a.TYPE(c,[b.Stream,!1,[Object]]):return a.MODEL.branch(e,c[2]),a.MODEL.cascade(e,null);case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):return a.MODEL.split(e,function(b){return a.TYPE([b],c[1])},c[2]);case a.TYPE(c,[b.Stream,Function,Object,void 0]):case a.TYPE(c,[b.Stream,Function,[Object],void 0]):return a.MODEL.split(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream,String,Object]):case a.TYPE(c,[b.Stream,String,null]):return a.MODEL.split(e,function(b){return a.TYPE(b)===c[1]},c[2]);case a.TYPE(c,[b.Stream,[Object]]):return a.MODEL.merge(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function k(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.pattern(b,c)}function l(b,c,d){return a.MODEL.monad(b,c,d)}function m(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.monadic(b,c)}function n(a,b,c,d){return void 0===c&&(c=[]),void 0===d&&(d=1),Object.keys(b).concat(c).filter(function(c){return!a[c]&&"function"==typeof b[c]}).forEach(function(c){return a[c]=b[c]}),a}function o(b,c,d,e,f){return void 0===d&&(d=[]),void 0===e&&(e=1),void 0===f&&(f=!1),Object.keys(c).concat(d).filter(function(a){return f||!b[a]&&"function"==typeof c[a]}).forEach(function(d){return b[d]=function(){for(var f=[],g=0;g<arguments.length;g++)f[g-0]=arguments[g];return b.__LazyChain__.command=[d,f],a.MODEL.emulator(b,f,d,c,e)}}),b}b.handle=d,b.core=f,b.extendArray_=g,b.extendStream_=h,b.lazy=i,b.stream=j,b.pattern=k,b.monad=l,b.monadic=m,b.mixin=n,b.emulate=o}(b=a.CONTROLLER||(a.CONTROLLER={}))}(d||(d={}));var e,d;!function(a){switch(e=e||a.CONTROLLER.handle(),!0){case"object"==typeof module&&!!module&&module.exports instanceof Object:module.exports=e;break;case"object"==typeof window&&!!window&&window.window===window:window.LazyChain=e}}(d||(d={}))}("lazychain","0.3.0-alpha.15"); | ||
/*! lazychain v0.3.0-alpha.16 | (c) 2014, falsandtru | MIT Licence */ | ||
!new function(a,b){"use strict";var c;!function(a){var b;!function(a){a.args2array=function(a){for(var b=a.length,c=Array(b),d=0;b>d;d++)c[d]=a[d];return c}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b,c){var d=void 0===b;switch(c.length){case 0:return d?a():a.call(b);case 1:return d?a(c[0]):a.call(b,c[0]);case 2:return d?a(c[0],c[1]):a.call(b,c[0],c[1]);case 3:return d?a(c[0],c[1],c[2]):a.call(b,c[0],c[1],c[2]);case 4:return d?a(c[0],c[1],c[2],c[3]):a.call(b,c[0],c[1],c[2],c[3]);case 5:return d?a(c[0],c[1],c[2],c[3],c[4]):a.call(b,c[0],c[1],c[2],c[3],c[4]);case 6:return d?a(c[0],c[1],c[2],c[3],c[4],c[5]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5]);case 7:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6]);case 8:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7]);case 9:return d?a(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]):a.call(b,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]);default:return a.apply(b,c)}}a.apply=b}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){if(0>a){for(var c=-a,d=c%8;d--;)b(--c);for(;c;)b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c),b(--c)}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)b(c++);for(;f--;)b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++),b(c++)}}function c(a,b){if(0>a){for(var c=-a,d=c%8;d--;)if(!1===b(--c))return;for(;c;){if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return;if(!1===b(--c))return}}else{for(var e=a,c=0,d=e%8,f=e/8^0;d--;)if(!1===b(c++))return;for(;f--;){if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return;if(!1===b(c++))return}}}a.duff=b,a.duffbk=c}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(a){function b(a,b){switch(!0){case"string"==typeof a:var d=a;return Array(b+1).join(d);case a instanceof Array:var e=a.length;if(300>b){var f=Array(b);c(-b,function(b){return f[b]=a[b%e]})}else{for(var f=a.slice();2*f.length<=b;)f=f.concat(f);f=f.concat(f.slice(0,b-f.length))}return f}}var c=a.duff;a.repeat=b}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.UTILITY.repeat;b.id=function(){var a={};return{rest:function(){return a}}}(),b.type=function(){function a(e,f,g,h){switch(typeof f){case"undefined":if(null===e)return"null";var i=typeof e;return"object"===i||"function"===i?b[c.call(e)]||"object":i;case"string":var j=a(e);return f===j||f.length>j.length+5&&f.indexOf(j)>-1;default:return d(e,f,g,h)}}var b={},c=b.toString;return"Boolean Number String Function Array Date RegExp Object Error".split(/\s+/).forEach(function(a,c){return b["[object "+a+"]"]=a.toLowerCase()}),a}();var d=function(){function a(a,c,l,m,n,o){if(void 0===l&&(l=1),void 0===m&&(m=k),void 0===n&&(n=!1),void 0===o&&(o=[]),0>m)return!1;if(c.length>1&&c[c.length-1]===b.id.rest())return d(a,c.slice(0,-1),l,m,!0,o);if(0===o.length&&(a=e(a),a=f(a,c)),n&&c.length<a.length&&(c=g(a,c)),a.length!==c.length)return!1;for(var p,q,r=0,s=a.length;s>r;r++)switch(p=a[r],q=c[r],b.type(q)){case"undefined":continue;case"null":if(null===p||void 0===p)continue;return!1;case"boolean":case"string":if(q===p)continue;return!1;case"number":if(q===p||b.type(p,"number")&&isNaN(p)&&isNaN(q))continue;return!1;case"date":if(b.type(p,"date")&&p.getUTCMilliseconds()===q.getUTCMilliseconds())continue;return!1;case"array":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"array")&&i(p,q,l,m-1,o.concat([p])))continue;return!1;case"object":if(o.length&&~o.indexOf(p)){if(p===q)continue;return!1}if(p===q||b.type(p,"object")&&j(p,q,l,m-1,o.concat([p])))continue;return!1;case"function":if(void 0===p||null===p||b.type(p,"number")&&isNaN(p))return!1;switch(q){case Boolean:if(b.type(p,"boolean"))continue;return!1;case Number:if(b.type(p,"number"))continue;return!1;case String:if(b.type(p,"string"))continue;return!1;case Date:if(b.type(p,"date"))continue;return!1;case Array:if(b.type(p,"array"))continue;return!1;case Object:if(b.type(p,"object"))continue;return!1;case RegExp:if(b.type(p,"regexp"))continue;return!1;case Function:case Error:default:if(!b.type(p,"function")||p===Function||h(q)?p.constructor===q||p instanceof q&&!h(q):q===p||q.toString()===p.toString()&&j(p,q,l,m-1,o.concat([p])))continue;return!1}case"error":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.name===p.name&&q.message===p.message)continue;return!1;case"regexp":if(void 0!==p&&null!==p&&q.constructor===p.constructor&&q.source===p.source&&q.global===p.global&&q.ignoreCase===p.ignoreCase&&q.multiline===p.multiline)continue;return!1;default:throw new Error("Undefined pattern.")}return!0}function e(a){if(a instanceof Array)return a.slice();for(var b=[],c=0;c<a.length;c++)b[c-0]=a[c];return b}function f(a,b){for(var c=a.length;void 0===a[--c]&&c+1>b.length;);return a.slice(0,c+1)}function g(a,b){return b.concat(c(b.slice(-1),a.length-b.length))}function h(a){var b="string"==typeof a.name?a.name:a.toString().match(l).pop()+" ",c=b.charAt(0),d=b.charAt(1);return c>="A"&&"Z">=c&&!(d>="A"&&"Z">=d)}function i(a,b,c,e,f){return a.length<b.length-1?!1:(1===b.length&&c>0&&a.length>2*c&&(a=a.slice(0,c).concat(a.slice(-c))),d(a,b,c,e,1===b.length,f))}function j(a,b,c,e,f){var g=!0;for(var h in b)if(g=!1,!(h in a&&d([a[h]],[b[h]],c,e,!1,f)))return!1;if(g){for(var h in a)return!1;return!0}return!0}var k=9,l=/function\s*([^(]*)/;return a}()}(b=a.TYPE||(a.TYPE={}))}(c||(c={}));var c;!function(a){var b;!function(b){function c(a){return e(a,"object")&&"then"in a}var d=a.FUNCTION.apply,e=a.TYPE.type;b.isThenable=c,b.resolve="function"==typeof Promise?Promise.resolve.bind(Promise):function(a){return b.deferred().resolve(a)},b.reject=function(a){return b.deferred().reject(a)},b.when=function(a){function e(a,b){c(b)?b.then(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return f(a,b)},g.reject,g.notify):f(a,[b])}function f(a,b){0!==h&&"pending"===g.state()&&(h-=1,i[a]=b,0===h&&d(g.resolve,void 0,i))}if(0===a.length)return b.deferred().resolve([]);for(var g=b.deferred(),h=a.length,i=Array(h),j=0,k=a.length;k>j;j++)e(j,a[j]);return g.promise()},b.deferred=function(){return function(a){function c(a,b,c){for(var d,e=0,g=b.length;g>e;e++){var h=b[e];c.push(h),d=f(a,[h])}return o!==l&&c.splice(0,c.length),d}function f(a,b){for(var c,e=0,f=a?b.length:0;f>e;e++)c=d(b[e],void 0,a);return c}function g(a){var b=[];if(a instanceof Array)for(var c=a.length;c--;){var d=a[c];d instanceof Array?b=b.concat(g(d)):b.push(d)}return b}var h,i,j,k,l="pending",m="resolved",n="rejected",o=l,p=[],q=[],r=[],s=[],t={state:function(){return o},progress:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&c(h,g(a),p),this},done:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===m)&&c(i,g(a),q),this},fail:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return(o===l||o===n)&&c(j,g(a),r),this},always:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return c(k,g(a),s),this},then:function(a,f,g){function k(a,b,f,g){b&&c(a,[function(){for(var a=[],c=0;c<arguments.length;c++)a[c-0]=arguments[c];var f;"function"==typeof b?(f=d(b,void 0,a),e(f,"object")&&e(f.then,"function")?f.then(s.notify,s.notify,s.notify):g(f)):(b.forEach(function(b){return d(b,void 0,a)}),g())}],f)}var s=b.deferred();return o===l&&k(h,g,p,s.notify),(o===l||o===m)&&k(i,a,q,s.resolve),(o===l||o===n)&&k(j,f,r,s.reject),s.promise()},promise:function(){return{state:t.state,progress:t.progress,done:t.done,fail:t.fail,always:t.always,then:t.then}},notify:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(h=a,f(h,p)),this},resolve:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(i=a,k=a,f(a,q.concat(s)),p=[],q=[],s=[],o=m),this},reject:function(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return o===l&&(j=a,k=a,f(a,r.concat(s)),p=[],r=[],s=[],o=n),this}};return a&&a(t.resolve,t.reject,t.notify),t}}()}(b=a.PROMISE||(a.PROMISE={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.memoize=function(a){var b;return function(){return void 0===b&&(b=a()),b}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(a){a.v4=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16).toUpperCase()})}}(b=a.UUID||(a.UUID={}))}(c||(c={}));var d;!function(a){a.APPLY=c.FUNCTION.apply,a.TYPE=c.TYPE.type,a.PROMISE=c.PROMISE,a.MEMOIZE=c.FUNCTION.memoize,a.UUID=c.UUID.v4;var b;!function(a){a.rest=c.TYPE.id.rest}(b=a.ID||(a.ID={}))}(d||(d={}));var d;!function(c){var d;!function(d){var e=function(){function e(f,g,h){var i=this;void 0===g&&(g=[]),void 0===h&&(h=null),this.NAME=a,this.VERSION=b,this.__LazyChain__={extensions:null,parent:null,child:null,deferred:null,command:null,monad:null,transfer:function(a,b){return i.__LazyChain__.command=[a,b],i.__LazyChain__.child=c.APPLY(d[a],void 0,[i].concat(b))}},this.lazy=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("lazy",b)}}(),this.stream=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("stream",b)}}(),this.pattern=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("pattern",b)}}(),this.monad=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monad",b)}}(),this.monadic=function(){var a=i;return function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.__LazyChain__.transfer("monadic",b)}}(),this.array=function(){var a=i;return function(){var b;return a.some(function(a,c,d){return b=d}),b||[]}}(),this.prevChain=function(){var a=i;return function(){return a.__LazyChain__.parent}}(),this.nextChain=function(){var a=i;return function(){return a.__LazyChain__.child}}(),this.firstChain=function(){var a=i;return function(){return a.prevChain()&&a.prevChain().firstChain()||a}}(),this.lastChain=function(){var a=i;return function(){return a.nextChain()&&a.nextChain().lastChain()||a}}(),h&&(h.__LazyChain__.child=this,this.__LazyChain__.monad=h.__LazyChain__.monad,this.__LazyChain__.extensions=h.__LazyChain__.extensions),this.__LazyChain__.parent=h,e.map||d.extendStream_(!0,Array.prototype,0,["reverse","slice","sort","every","some","forEach","filter","map","reduce","reduceRight"]),d.mixin(this,this.__LazyChain__.deferred=c.PROMISE.deferred()),this.__LazyChain__.extensions=this.__LazyChain__.extensions||g,this.__LazyChain__.extensions.forEach(function(a){return d.emulate(i,a)});var j=this.__LazyChain__.deferred;f instanceof Array?f.length&&c.APPLY(j.notify,void 0,f):f instanceof e?f.progress(j.notify).done(j.resolve).fail(j.reject):c.PROMISE.isThenable(f)&&f.then(j.notify,j.notify,j.notify)}return e}();d.Stream=e}(d=c.CONTROLLER||(c.CONTROLLER={}))}(d||(d={}));var d;!function(a){var b;!function(b){function c(a,b){return"progress"in a&&"always"in a&&"notify"in b?a.progress(b.notify).always(b.resolve):a.then(b.resolve,b.reject),b}function d(a,b){return void 0===b&&(b=a),new v(b,a.__LazyChain__.extensions,a)}function f(b,c){return b.nextChain()?(c=c||new v(null,b.__LazyChain__.extensions),f(b.nextChain(),a.APPLY(c[b.__LazyChain__.command[0]],c,b.__LazyChain__.command[1]))):c}function g(b){if(!(a.TYPE(b,"object")&&"prototype"in b))return b;switch(b.prototype){case null:return Object.create(null);case void 0:case!1:return b;case!0:if(b.constructor&&b.constructor!==Object)return new b.constructor;var c=function(){};return c.prototype=b,new c;default:return Object.create(b)}}function h(b){var c="function"==typeof setImmediate?setImmediate:function(a){return setTimeout(a,1)};return b.lazy(function(b,d,f){if(!(d>0)){var g=e.deferred();return c(function(b){return a.APPLY(g.resolve,void 0,f)}),g}})}function i(b,c,e,f){function h(){for(var a=[],b=0;b<arguments.length;b++)a[b-0]=arguments[b];return a.reduce(i,[])}function i(b,d,g,h){var i,m=l?c(d,g,h,e,i=a.PROMISE.deferred()):c(d,g,h,e);return(i=a.PROMISE.isThenable(m)?m:i)?(f?(b.push(i),g+1===h.length&&a.PROMISE.when(b).then(j,k.notify,k.notify)):"progress"in i&&"always"in i?i.progress(k.notify).always(k.notify):i.then(k.notify,k.notify,k.notify),b):b}function j(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return b.forEach(function(b){return a.APPLY(k.notify,void 0,b)})}"boolean"==typeof e&&void 0===f&&(f=e,e={}),e=g(e);var k=d(b,null),l=5===c.length;return c&&b.progress(h).always(h),k}function j(b,c){function f(){return i.notify(j.sentinel)}function g(a){return Date.now()-a>c}function h(a){return a===j.sentinel}var i=d(b),j={prototype:!0,buffer:[],sentinel:{},timer:0,last:0},k=0>c;return c=Math.abs(c),i.lazy(function(b,d,i,j){if(h(b)||j.buffer.push(b),0===j.timer)j.timer=setTimeout(f,c),j.last=Date.now();else if(k&&!h(b))clearTimeout(j.timer),j.timer=setTimeout(f,c);else if(g(j.last)||h(b)){clearTimeout(j.timer),j.timer=0,j.last=Date.now();var l=e.deferred();return a.APPLY(l.resolve,l,j.buffer.splice(0,j.buffer.length))}},j)}function k(a,b,c){function e(){for(var a=[],d=0;d<arguments.length;d++)a[d-0]=arguments[d];return a.forEach(function(a,d,e){return b(a,d,e,c)})}return void 0===c&&(c={}),c=g(c),b&&a.progress(e).always(e),d(a)}function l(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(d,a)}),f?b.cascade(d):d}function m(d,e,f){return void 0===f&&(f=!0),e.filter(function(b){return a.PROMISE.isThenable(b)}).forEach(function(a){return c(a,d)}),f?b.cascade(d):d}function n(a,b){return b.reduceRight(function(a,b){return m(f(b.firstChain()).firstChain(),[a],!1).lastChain()},a)}function o(b,c,e,f){function h(b,c){switch(!0){case!b:return[c,null];case a.PROMISE.isThenable(b):return[c,b];case b instanceof Array&&1===b.length&&!a.PROMISE.isThenable(b[0]):return b[0][""]=c,b[0];case b instanceof Array:return b.unshift(c),b[1]=b[1]||null,b}}void 0===f&&(f={}),f=g(f);var i=d(b,null),j=d(b);return e=h(e,i),j.reduce(function(a,b,d,e){a=d?a:Object.create(null);var g=c.call(void 0,b,d,e,f);return g="boolean"==typeof g?+!g:g,g in a||(a[g]=[]),a[g].push(b),a},null).forEach(function(b){Object.keys(b).filter(function(a){return!!b[a].length}).forEach(function(c){var d=c in e?e[c]||function(a){return void 0}:null;"function"==typeof d?a.APPLY(d,void 0,b[c]):a.APPLY(d.notify,void 0,b[c])})}),i}function p(b,c){function e(b){var d=Array(b.length);return b.forEach(function(b,e){for(var f,g=0,h=c.length;h>g;g++){f=g>0&&c[g-1][0]===c[g][0]?f:a.TYPE([b],[c[g][0]]);var i=c[g],j=i.length;if(f){if(1===j)return d[e]=b;if(2===j)return d[e]=i[1](b);if(3===j&&i[1](b))return d[e]=i[2](b)}}d[e]=b}),d}c=c.concat([[void 0,function(a){return a}]]);var f=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function q(a){return a}function r(a){return a}function s(b,c,e){switch(void 0===e&&(e=!0),b.__LazyChain__.monad=c,e){case!0:return q(d(b.map(function(a){return c["return"].call(void 0,a)})));case!1:return q(d(b));default:return q(d(b.map(function(b){return a.TYPE([b],[e])?c["return"].call(void 0,b):b})))}}function t(b,c){function e(d){var e=Array(d.length);return d.forEach(function(d,f){for(var g,h=0,i=c.length;i>h;h++){g=h>0&&c[h-1][0]===c[h][0]?g:a.TYPE([d],[c[h][0]]);var j=c[h],k=j.length,l=b.__LazyChain__.monad;if(g){if(1===k)return e[f]=d;if(2===k)return e[f]=l.bind(d,j[1]);if(3===k&&l.bind(d,j[1]))return e[f]=l.bind(d,j[2])}}e[f]=l.fail(d)}),e}c=c.concat([[void 0,r(b).__LazyChain__.monad.fail]]);var f=q(d(r(b),null));return r(b).progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.notify,void 0,e(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.resolve,void 0,e(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(f.reject,void 0,e(b))}),f}function u(b,c,e,f,g){function h(b){var d,h=g?a.APPLY(f[e],f,[b].concat(c)):a.APPLY(f[e],b,c);switch(e){case"every":case"some":d=h?b:[];break;case"reduce":case"reduceRight":d=[h];break;case"forEach":d=[];break;default:d=h instanceof Array?h:[]}return d}var i=b.__LazyChain__.child=d(b,null);return b.progress(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.notify,void 0,h(b))}).done(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.resolve,void 0,h(b))}).fail(function(){for(var b=[],c=0;c<arguments.length;c++)b[c-0]=arguments[c];return a.APPLY(i.reject,void 0,h(b))}),i}var v=a.CONTROLLER.Stream;b.cascade=d,b.immediate=h,b.lazy=i,b.buffer=j,b.stream=k,b.branch=l,b.merge=m,b.compose=n,b.split=o,b.pattern=p,b.monad=s,b.monadic=t,b.emulator=u}(b=a.MODEL||(a.MODEL={}))}(d||(d={}));var c;!function(a){var b;!function(b){function c(a){try{return a&&"object"==typeof a?JSON.stringify(a):a+""}catch(b){return a+""}}function d(a,b,c){var d;if(b in a){if(d=a[b],d[0][0]!==c)for(var e=1,f=d.length;f>e;e++)if(d[e][0]===c){d.unshift(d.splice(e,1).pop());break}}else d=a[b]=[[c,void 0,Object.create(null)]];return d}function e(a,b,c,d,e,g){var h=a[0];return 0===a.length||h[0]!==b?(h=[b,f(c,void 0,d),Object.create(null)],a.unshift(h)):void 0===h[1]&&(h[1]=f(c,void 0,d)),a.length>e+g&&a.splice(e,e+g),h}var f=a.FUNCTION.apply;b.cache=function(a,b){void 0===b&&(b=5);var f,g,h;return function(){for(var i=[],j=0;j<arguments.length;j++)i[j-0]=arguments[j];var k,l,m=arguments.length;if(0===m)return void 0===h&&(h=a()),h;g=void 0===g?b>20&&10||Math.floor(b/2):g;for(var n,o=f=f||Object.create(null),p=0;m>p;p++)o=p?n[2]:o,k=i[p],l=k&&"object"==typeof k?c(k):k+"",n=e(d(o,l,k),k,a,i,b,g);return n[1]}}}(b=a.FUNCTION||(a.FUNCTION={}))}(c||(c={}));var c;!function(a){var b;!function(b){var c=a.FUNCTION.cache;b.store=function(a){void 0===a&&(a=10);var b,d=c(function(a){return b},a),e=function(a,c){return b=c,d(a)};return function(a,b){if(void 0===b)return e(a);if(b===e(a,b))return b;throw Error(a)}}}(b=a.UTILITY||(a.UTILITY={}))}(c||(c={}));var d;!function(a){var b;!function(b){function d(){var d;return d=function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b.core,void 0,c)},d.id=a.ID,d.uuid=a.UUID,d.args2array=c.FUNCTION.args2array,d.type=a.TYPE,d.memoize=c.FUNCTION.memoize,d.cache=c.FUNCTION.cache,d.store=c.UTILITY.store,d.resolve=a.PROMISE.resolve,d.reject=a.PROMISE.reject,d.deferred=a.PROMISE.deferred,d.when=a.PROMISE.when,d.repeat=c.UTILITY.repeat,d.duff=c.UTILITY.duff,d.duffbk=c.UTILITY.duffbk,d}function f(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];switch(!0){case a.TYPE(c,[!0]):return void g(!0,!1);case a.TYPE(c,[!1]):return void g(!1,!1);case a.TYPE(c,[!0,Array.prototype]):return void g(!0,!0);case a.TYPE(c,[!1,Array.prototype]):return void g(!1,!0);case a.TYPE(c,[!0,Function]):return void h(!0,c[1],1);case a.TYPE(c,[!1,Function]):return void h(!1,c[1],1);case a.TYPE(c,[]):return new b.Stream;case a.TYPE(c,[Function]):return new b.Stream(void 0,[c[0]]);case a.TYPE(c,[Array]):return new b.Stream(c[0]);case a.TYPE(c,[Array,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,Function]):return new b.Stream(c[0],[c[1]]);case a.TYPE(c,[Object,a.ID.rest()]):return(new b.Stream).stream(c)}}function g(c,d){["lazy","stream"].forEach(function(f){c?Object.defineProperty(Array.prototype,f,{configurable:!0,writable:!0,enumerable:d,value:function(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];return a.APPLY(b[f],void 0,[e(this)].concat(c))}}):delete Array.prototype[f]})}function h(c,d,e,f){void 0===f&&(f=[]),c?Object.keys(d).concat(f).filter(function(a){return!b.Stream.prototype[a]&&"function"==typeof d[a]}).forEach(function(c){b.Stream.prototype[c]=function(){for(var b=[],f=0;f<arguments.length;f++)b[f-0]=arguments[f];return this.__LazyChain__.command=[c,b],a.MODEL.emulator(this,b,c,d,e)},Object.defineProperty(b.Stream.prototype[c],"provider",{configurable:!1,writable:!1,enumerable:!1,value:d})}):Object.keys(d).concat(f).filter(function(a){return!!b.Stream.prototype[a]&&b.Stream.prototype[a].provider===d}).forEach(function(a){return delete b.Stream.prototype[a]})}function i(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.lazy(e,c[1]);case a.TYPE(c,[b.Stream,Function,Boolean]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.lazy(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Function,void 0,Boolean]):return a.MODEL.lazy(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream]):return a.MODEL.immediate(e);case a.TYPE(c,[b.Stream,Number]):return a.MODEL.buffer(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function j(){for(var c=[],d=0;d<arguments.length;d++)c[d-0]=arguments[d];var e=c[0];switch(!0){case a.TYPE(c,[b.Stream,Function]):return a.MODEL.stream(e,c[1]);case a.TYPE(c,[b.Stream,Function,void 0]):return a.MODEL.stream(e,c[1],c[2]);case a.TYPE(c,[b.Stream,Object,a.ID.rest()]):return a.MODEL.compose(e,c.slice(1));case a.TYPE(c,[b.Stream]):return e;case a.TYPE(c,[b.Stream,!0,[Object]]):return a.MODEL.branch(e,c[2]);case a.TYPE(c,[b.Stream,!1,[Object]]):return a.MODEL.branch(e,c[2]),a.MODEL.cascade(e,null);case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):case a.TYPE(c,[b.Stream,Array,Object]):case a.TYPE(c,[b.Stream,Array,null]):return a.MODEL.split(e,function(b){return a.TYPE([b],c[1])},c[2]);case a.TYPE(c,[b.Stream,Function,Object,void 0]):case a.TYPE(c,[b.Stream,Function,[Object],void 0]):return a.MODEL.split(e,c[1],c[2],c[3]);case a.TYPE(c,[b.Stream,String,Object]):case a.TYPE(c,[b.Stream,String,null]):return a.MODEL.split(e,function(b){return a.TYPE(b)===c[1]},c[2]);case a.TYPE(c,[b.Stream,[Object]]):return a.MODEL.merge(e,c[1]);default:return a.MODEL.stream(e,void 0)}}function k(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.pattern(b,c)}function l(b,c,d){return a.MODEL.monad(b,c,d)}function m(b){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return a.MODEL.monadic(b,c)}function n(a,b,c,d){return void 0===c&&(c=[]),void 0===d&&(d=1),Object.keys(b).concat(c).filter(function(c){return!a[c]&&"function"==typeof b[c]}).forEach(function(c){return a[c]=b[c]}),a}function o(b,c,d,e,f){return void 0===d&&(d=[]),void 0===e&&(e=1),void 0===f&&(f=!1),Object.keys(c).concat(d).filter(function(a){return f||!b[a]&&"function"==typeof c[a]}).forEach(function(d){return b[d]=function(){for(var f=[],g=0;g<arguments.length;g++)f[g-0]=arguments[g];return b.__LazyChain__.command=[d,f],a.MODEL.emulator(b,f,d,c,e)}}),b}b.handle=d,b.core=f,b.extendArray_=g,b.extendStream_=h,b.lazy=i,b.stream=j,b.pattern=k,b.monad=l,b.monadic=m,b.mixin=n,b.emulate=o}(b=a.CONTROLLER||(a.CONTROLLER={}))}(d||(d={}));var e,d;!function(a){switch(e=e||a.CONTROLLER.handle(),!0){case"object"==typeof module&&!!module&&module.exports instanceof Object:module.exports=e;break;case"object"==typeof window&&!!window&&window.window===window:window.LazyChain=e}}(d||(d={}))}("lazychain","0.3.0-alpha.16"); |
@@ -78,2 +78,3 @@ --- | ||
assert.equal(LazyChain.type([[]], [[]]), true); | ||
assert.equal(LazyChain.type([[]], [[null]]), false); | ||
assert.equal(LazyChain.type([[null]], [[]]), false); | ||
@@ -100,2 +101,4 @@ assert.equal(LazyChain.type([[null]], [[null]]), true); | ||
assert.equal(LazyChain.type([{}], [{}]), true); | ||
assert.equal(LazyChain.type([{}], [{ 0: 0 }]), false); | ||
assert.equal(LazyChain.type([{ 0: 0 }], [{}]), false); | ||
assert.equal(LazyChain.type([{ 0: 0 }], [{ 0: 0 }]), true); | ||
@@ -115,3 +118,3 @@ assert.equal(LazyChain.type([{ 0: 1 }], [{ 0: 0 }]), false); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject }], [{ '': circularReferenceObject }]), true); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': null }], [{ '': circularReferenceObject }]), false); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': null }], [{ '': circularReferenceObject }]), true); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject }], [{ '': circularReferenceObject, ' ': null }]), false); | ||
@@ -118,0 +121,0 @@ assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': false }], [{ '': circularReferenceObject, ' ': true }]), false); |
@@ -11,2 +11,42 @@ --- | ||
## 0.3.0 alpha 16 | ||
Fix type function for object. | ||
### Highlights | ||
* Fix type function for object. | ||
### Compatibility | ||
<table> | ||
<thead><tr><th>Behavior</th><th>Detail</th></tr></thead> | ||
<tr><td>Change</td><td>-</td></tr> | ||
<tr><td>Add</td><td>-</td></tr> | ||
<tr><td>Fix</td><td><ul> | ||
<li>Fix <code>type</code> function behavior for object.</li> | ||
</ul></td></tr> | ||
</table> | ||
<table> | ||
<thead><tr><th>Interface</th><th>Detail</th></tr></thead> | ||
<tr><td>Change</td><td>-</td></tr> | ||
<tr><td>Add</td><td>-</td></tr> | ||
<tr><td>Fix</td><td>-</td></tr> | ||
</table> | ||
<table> | ||
<thead><tr><th>Spec</th><th>Detail</th></tr></thead> | ||
<tr><td>Change</td><td>-</td></tr> | ||
<tr><td>Add</td><td>-</td></tr> | ||
<tr><td>Fix</td><td><ul> | ||
<li>Fix <code>type</code> function spec for object.</li> | ||
</ul></td></tr> | ||
</table> | ||
### Diff | ||
[compare](https://github.com/falsandtru/lazychain/compare/v0.3.0-alpha.15...v0.3.0-alpha.16) | ||
## 0.3.0 alpha 15 | ||
@@ -13,0 +53,0 @@ |
@@ -17,2 +17,6 @@ --- | ||
<pre class="sh brush: html;"> | ||
npm i lazychain | ||
</pre> | ||
<pre class="sh brush: html;"> | ||
<script charset="utf-8" src="/js/lazychain.js"></script> | ||
@@ -19,0 +23,0 @@ </pre> |
@@ -945,2 +945,3 @@ --- | ||
assert.equal(LazyChain.type([[]], [[]]), true); | ||
assert.equal(LazyChain.type([[]], [[null]]), false); | ||
assert.equal(LazyChain.type([[null]], [[]]), false); | ||
@@ -967,2 +968,4 @@ assert.equal(LazyChain.type([[null]], [[null]]), true); | ||
assert.equal(LazyChain.type([{}], [{}]), true); | ||
assert.equal(LazyChain.type([{}], [{ 0: 0 }]), false); | ||
assert.equal(LazyChain.type([{ 0: 0 }], [{}]), false); | ||
assert.equal(LazyChain.type([{ 0: 0 }], [{ 0: 0 }]), true); | ||
@@ -982,3 +985,3 @@ assert.equal(LazyChain.type([{ 0: 1 }], [{ 0: 0 }]), false); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject }], [{ '': circularReferenceObject }]), true); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': null }], [{ '': circularReferenceObject }]), false); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': null }], [{ '': circularReferenceObject }]), true); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject }], [{ '': circularReferenceObject, ' ': null }]), false); | ||
@@ -985,0 +988,0 @@ assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': false }], [{ '': circularReferenceObject, ' ': true }]), false); |
{ | ||
"name": "lazychain", | ||
"version": "0.3.0-alpha.15", | ||
"version": "0.3.0-alpha.16", | ||
"description": "", | ||
@@ -16,3 +16,3 @@ "private": false, | ||
"devDependencies": { | ||
"chai": "^2.3.0", | ||
"chai": "^3.1.0", | ||
"grunt-cli": "^0.1.13", | ||
@@ -27,23 +27,23 @@ "grunt-contrib-clean": "^0.6.0", | ||
"grunt-jekyll": "^0.4.2", | ||
"grunt-karma": "^0.10.1", | ||
"grunt-karma": "^0.12.0", | ||
"grunt-karma-coveralls": "^2.5.3", | ||
"grunt-shell-spawn": "0.3.8", | ||
"grunt-tslint": "^2.0.0", | ||
"grunt-typescript": "^0.6.1", | ||
"grunt-tslint": "^2.3.1-beta", | ||
"grunt-typescript": "^0.6.2", | ||
"json": "^9.0.3", | ||
"karma": "^0.12.31", | ||
"karma": "^0.13.2", | ||
"karma-chai": "^0.1.0", | ||
"karma-chrome-launcher": "^0.1.8", | ||
"karma-coverage": "^0.3.1", | ||
"karma-coveralls": "^0.1.5", | ||
"karma-firefox-launcher": "^0.1.4", | ||
"karma-chrome-launcher": "^0.2.0", | ||
"karma-coverage": "^0.4.2", | ||
"karma-coveralls": "^1.1.2", | ||
"karma-firefox-launcher": "^0.1.6", | ||
"karma-html2js-preprocessor": "^0.1.0", | ||
"karma-ie-launcher": "^0.1.5", | ||
"karma-mocha": "^0.1.10", | ||
"karma-phantomjs-launcher": "^0.1.4", | ||
"karma-ie-launcher": "^0.2.0", | ||
"karma-mocha": "^0.2.0", | ||
"karma-phantomjs-launcher": "^0.2.0", | ||
"karma-requirejs": "^0.2.2", | ||
"mocha": "^2.2.4", | ||
"phantomjs": "^1.9.16", | ||
"requirejs": "^2.1.17", | ||
"typescript": "1.4.1" | ||
"mocha": "^2.2.5", | ||
"phantomjs": "^1.9.17", | ||
"requirejs": "^2.1.19", | ||
"typescript": "1.5.0-beta" | ||
}, | ||
@@ -50,0 +50,0 @@ "author": "falsandtru", |
@@ -13,4 +13,4 @@ # LazyChain | ||
Asynchronous method chain implemented in JavaScript. | ||
FRP(Functional reactive programming) supporting jQuery plugin. | ||
FRP(Functional reactive programming) supporting DSL. | ||
Lazy stream, monad, pattern match, guard implements in JavaScript. | ||
@@ -215,2 +215,8 @@ ``` | ||
## Installation | ||
```js | ||
npm i lazychain | ||
``` | ||
## Documentation | ||
@@ -217,0 +223,0 @@ |
@@ -53,4 +53,4 @@ /// <reference path="../define.ts"/> | ||
NAME: string = NAME | ||
VERSION: string = VERSION | ||
NAME: string = NAME; | ||
VERSION: string = VERSION; | ||
@@ -68,3 +68,3 @@ __LazyChain__ = { | ||
} | ||
} | ||
}; | ||
@@ -76,3 +76,3 @@ lazy = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -84,3 +84,3 @@ stream = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -92,3 +92,3 @@ pattern = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -100,3 +100,3 @@ monad = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -108,7 +108,7 @@ monadic = (() => { | ||
}; | ||
})() | ||
})(); | ||
array = (() => { | ||
var self = this; | ||
return function <T>(): T[]{ | ||
return function <T>(): T[] { | ||
var result: T[]; | ||
@@ -118,3 +118,3 @@ self.some((v, i, a) => result = a); | ||
}; | ||
})() | ||
})(); | ||
@@ -126,3 +126,3 @@ prevChain = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -134,3 +134,3 @@ nextChain = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -142,3 +142,3 @@ firstChain = (() => { | ||
}; | ||
})() | ||
})(); | ||
@@ -150,30 +150,30 @@ lastChain = (() => { | ||
}; | ||
})() | ||
})(); | ||
// copy | ||
reverse | ||
sort | ||
map | ||
filter | ||
reverse; | ||
sort; | ||
map; | ||
filter; | ||
// override | ||
every | ||
some | ||
forEach | ||
reduce | ||
reduceRight | ||
every; | ||
some; | ||
forEach; | ||
reduce; | ||
reduceRight; | ||
state | ||
promise | ||
notify | ||
notifyWith | ||
resolve | ||
resolveWith | ||
reject | ||
rejectWith | ||
progress | ||
done | ||
fail | ||
always | ||
then | ||
pipe | ||
state; | ||
promise; | ||
notify; | ||
notifyWith; | ||
resolve; | ||
resolveWith; | ||
reject; | ||
rejectWith; | ||
progress; | ||
done; | ||
fail; | ||
always; | ||
then; | ||
pipe; | ||
@@ -180,0 +180,0 @@ } |
@@ -33,4 +33,4 @@ /// <reference path=".d/lazychain.d.ts"/> | ||
export interface StreamInterface<T> extends LazyChain<T> { | ||
NAME: string | ||
VERSION: string | ||
NAME: string; | ||
VERSION: string; | ||
__LazyChain__: { | ||
@@ -43,9 +43,9 @@ extensions: Function[] | ||
command: [string, any[]] | ||
} | ||
prevChain(): StreamInterface<T> | ||
nextChain(): StreamInterface<T> | ||
firstChain(): StreamInterface<T> | ||
lastChain(): StreamInterface<T> | ||
}; | ||
prevChain(): StreamInterface<T>; | ||
nextChain(): StreamInterface<T>; | ||
firstChain(): StreamInterface<T>; | ||
lastChain(): StreamInterface<T>; | ||
} | ||
} |
@@ -240,35 +240,32 @@ /// <reference path="repeat.ts"/> | ||
function compareArray(a: any[], b: any[], cut: number, depth: number, acc: any[]): boolean { | ||
var alen = a.length, | ||
blen = b.length; | ||
if (alen < blen - 1) { | ||
function compareArray(arg: any[], pattern: any[], cut: number, depth: number, acc: any[]): boolean { | ||
if (arg.length < pattern.length - 1) { | ||
return false; | ||
} | ||
if (blen === 1 && cut > 0 && alen > cut * 2) { | ||
a = a.slice(0, cut).concat(a.slice(-cut)); | ||
if (pattern.length === 1 && cut > 0 && arg.length > cut * 2) { | ||
arg = arg.slice(0, cut).concat(arg.slice(-cut)); | ||
} | ||
return compare(a, b, cut, depth, blen === 1, acc); | ||
return compare(arg, pattern, cut, depth, pattern.length === 1, acc); | ||
} | ||
function compareObject(a: Object, b: Object, cut: number, depth: number, acc: any[]): boolean | ||
function compareObject(a: Function, b: Function, cut: number, depth: number, acc: any[]): boolean | ||
function compareObject(a: Object|Function, b: Object|Function, cut: number, depth: number, acc: any[]): boolean { | ||
if (Object.keys(a).length !== Object.keys(b).length) { | ||
return false; | ||
} | ||
var props = []; | ||
function compareObject(arg: Object, pattern: Object, cut: number, depth: number, acc: any[]): boolean | ||
function compareObject(arg: Function, pattern: Function, cut: number, depth: number, acc: any[]): boolean | ||
function compareObject(arg: Object|Function, pattern: Object|Function, cut: number, depth: number, acc: any[]): boolean { | ||
/* tslint:disable:forin */ | ||
for (var i in a) { | ||
props.push(i); | ||
if (!(i in b) || a[i] !== b[i] && !compare([a[i]], [b[i]], cut, depth, false, acc)) { | ||
var empty = true; | ||
for (let i in pattern) { | ||
empty = false; | ||
if (!(i in arg) || !compare([arg[i]], [pattern[i]], cut, depth, false, acc)) { | ||
return false; | ||
} | ||
} | ||
/* tslint:disable:forin no-duplicate-variable */ | ||
for (var i in b) { | ||
if (props.length === 0 || props.shift() !== i) { | ||
if (!empty) { | ||
return true; | ||
} | ||
else { | ||
for (let i in arg) { | ||
return false; | ||
} | ||
return true; | ||
} | ||
return true; | ||
} | ||
@@ -275,0 +272,0 @@ })(); |
@@ -43,2 +43,3 @@ | ||
assert.equal(LazyChain.type([[]], [[]]), true); | ||
assert.equal(LazyChain.type([[]], [[null]]), false); | ||
assert.equal(LazyChain.type([[null]], [[]]), false); | ||
@@ -65,2 +66,4 @@ assert.equal(LazyChain.type([[null]], [[null]]), true); | ||
assert.equal(LazyChain.type([{}], [{}]), true); | ||
assert.equal(LazyChain.type([{}], [{ 0: 0 }]), false); | ||
assert.equal(LazyChain.type([{ 0: 0 }], [{}]), false); | ||
assert.equal(LazyChain.type([{ 0: 0 }], [{ 0: 0 }]), true); | ||
@@ -80,3 +83,3 @@ assert.equal(LazyChain.type([{ 0: 1 }], [{ 0: 0 }]), false); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject }], [{ '': circularReferenceObject }]), true); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': null }], [{ '': circularReferenceObject }]), false); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': null }], [{ '': circularReferenceObject }]), true); | ||
assert.equal(LazyChain.type([{ '': circularReferenceObject }], [{ '': circularReferenceObject, ' ': null }]), false); | ||
@@ -83,0 +86,0 @@ assert.equal(LazyChain.type([{ '': circularReferenceObject, ' ': false }], [{ '': circularReferenceObject, ' ': true }]), false); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
1643629
241
19196