forked from travis4all/fjs
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfjs.min.js
1 lines (1 loc) · 6.12 KB
/
fjs.min.js
1
(function(){var fjs,_,__slice=[].slice;fjs=function(_){var add,all,any,anyUndefined,arrays,basics,call,chain,compose,curry,curryModule,debug,div,each,eq,filter,find,first,flip,flow,functions,get,groupBy,gt,gte,head,id,indexOf,invoke,isUndefined,last,log,lt,lte,makeSeries,map,max,memoize,method,min,mult,negate,objects,reduce,rest,reverse,series,set,sort,sortBy,sub,tail,take,toAsync,us;curry=function(f){var call;if(!_.isFunction(f)){return curryModule(f)}call=function(){var args,inner;args=1<=arguments.length?__slice.call(arguments,0):[];if(args.length>=f.length){return f.apply(null,args)}else{inner=function(){var args2,innerArgs;args2=1<=arguments.length?__slice.call(arguments,0):[];innerArgs=args.concat(args2);return call.apply(null,innerArgs)};inner.name=f.name;inner.toString=function(){return f.toString()};inner.curryLength=f.length-args.length;return inner}};call.name=f.name;call.toString=function(){return f.toString()};call.curryLength=f.length;return call};curryModule=function(module){var name,value;module=_.clone(module);for(name in module){value=module[name];if(_.isFunction(value)){module[name]=curry(value)}}return module};flip=function(f){return function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return f.apply(null,args.reverse())}};id=function(a){return a};method=function(func){return function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return func.apply(null,[this].concat(__slice.call(args)))}};compose=function(){var funcs;funcs=1<=arguments.length?__slice.call(arguments,0):[];if(anyUndefined(funcs)){throw new Error("null function in compose")}return _.compose.apply(_,funcs)};chain=function(){var funcs;funcs=1<=arguments.length?__slice.call(arguments,0):[];return compose.apply(null,funcs.reverse())};functions={curry:curry,flip:flip,id:id,method:method,chain:chain};makeSeries=function(){var funcs,nextInSeries,start;funcs=1<=arguments.length?__slice.call(arguments,0):[];if(anyUndefined(funcs)){throw new Error("null function in series")}nextInSeries=function(){var args,cb,func,index,length,_i,_ref;args=3<=arguments.length?__slice.call(arguments,0,_i=arguments.length-2):(_i=0,[]),index=arguments[_i++],cb=arguments[_i++];func=funcs[index];if(!(func!=null)){return cb.apply(null,[null].concat(__slice.call(args)))}length=(_ref=func.curryLength)!=null?_ref:func.length;if(length>1){while(args.length<length-1){args.push(null)}}return func.apply(null,__slice.call(args).concat([function(){var args,err;err=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];if(err!=null){return cb(err)}return nextInSeries.apply(null,__slice.call(args).concat([index+1],[cb]))}]))};return start=function(){var args,cb,_i;args=2<=arguments.length?__slice.call(arguments,0,_i=arguments.length-1):(_i=0,[]),cb=arguments[_i++];return nextInSeries.apply(null,__slice.call(args).concat([0],[cb]))}};series=function(){var cb,funcs,seriesChain,_i;funcs=2<=arguments.length?__slice.call(arguments,0,_i=arguments.length-1):(_i=0,[]),cb=arguments[_i++];try{seriesChain=makeSeries.apply(null,funcs)}catch(err){return cb(err)}return seriesChain(cb)};toAsync=function(f){if(!(f!=null)){return null}return function(){var args,cb,_i;args=2<=arguments.length?__slice.call(arguments,0,_i=arguments.length-1):(_i=0,[]),cb=arguments[_i++];return process.nextTick(function(){var res;res=f.apply(null,args);return cb(null,res)})}};flow={series:series,makeSeries:makeSeries,toAsync:toAsync};get=curry(function(name,obj){return obj[name]});set=curry(function(name,value,obj){obj[name]=value;return obj});call=function(){var args,name;name=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];return function(){var innerArgs,obj;obj=arguments[0],innerArgs=2<=arguments.length?__slice.call(arguments,1):[];if(!(obj[name]!=null)||!_.isFunction(obj[name])){throw new Error("Object "+obj+" has no method "+name)}return obj[name].apply(obj,args.concat(innerArgs))}};objects={get:get,set:set,call:call};log=function(arg){console.log(arg);return arg};debug={log:log};eq=curry(function(a,b){return b===a});lt=curry(function(a,b){return b<a});lte=curry(function(a,b){return b<=a});gt=curry(function(a,b){return b>a});gte=curry(function(a,b){return b>=a});add=curry(function(a,b){return b+a});sub=curry(function(a,b){return b-a});mult=curry(function(a,b){return b*a});div=curry(function(a,b){return b/a});negate=function(a){return!a};basics={eq:eq,lt:lt,lte:lte,gt:gt,gte:gte,add:add,sub:sub,mult:mult,div:div,negate:negate};memoize=_.memoize;find=curry(function(iterator,list){return _.find(list,iterator)});map=curry(function(iterator,list){return _.map(list,iterator)});filter=curry(function(iterator,list){return _.filter(list,iterator)});each=curry(function(iterator,list){return _.each(list,iterator)});min=curry(function(iterator,list){return _.min(list,iterator)});max=curry(function(iterator,list){return _.max(list,iterator)});sortBy=curry(function(iterator,list){return _.sortBy(list,iterator)});groupBy=curry(function(iterator,list){return _.groupBy(list,iterator)});invoke=curry(function(iterator,list){return _.invoke(list,iterator)});any=curry(function(iterator,list){return _.any(list,iterator)});all=curry(function(iterator,list){return _.all(list,iterator)});indexOf=curry(function(value,list){return _.indexOf(list,value)});sort=function(list){return list.concat().sort()};reduce=curry(function(iterator,memo,list){return _.reduce(list,iterator,memo)});head=first=_.first;last=_.last;tail=rest=_.rest;us={find:find,map:map,filter:filter,reduce:reduce,memoize:memoize,compose:compose,min:min,max:max,each:each,head:head,first:first,last:last,tail:tail,rest:rest,sortBy:sortBy,groupBy:groupBy,invoke:invoke,indexOf:indexOf,sort:sort,any:any,all:all};reverse=function(arr){return arr.concat().reverse()};take=curry(function(n,arr){return first(arr,n)});arrays={reverse:reverse,take:take};isUndefined=function(x){return!(x!=null)};anyUndefined=any(isUndefined);return _.extend(functions,objects,basics,us,arrays,debug,flow)};if((typeof define!=="undefined"&&define!==null?define.amd:void 0)!=null){define(["underscore"],function(_){return fjs(_)})}else if((typeof module!=="undefined"&&module!==null?module.exports:void 0)!=null){_=require("underscore");module.exports=fjs(_)}}).call(this)