Comparing version 0.1.3 to 0.1.4
@@ -6,4 +6,5 @@ const R = require("./rambda") | ||
//const add = new Benchmark.Suite | ||
const add = new Benchmark.Suite | ||
const update = new Benchmark.Suite | ||
const type = new Benchmark.Suite | ||
@@ -36,2 +37,15 @@ // add.add('Rambda#add', ()=>{ | ||
}) | ||
type.add('Rambda#type', ()=>{ | ||
R.type([1,2,3]) | ||
}) | ||
.add('R.update', () => { | ||
Ramda.type([1,2,3]) | ||
}) | ||
.on('cycle', event => { | ||
benchmarks.add(event.target) | ||
}) | ||
.on('complete', ()=>{ | ||
benchmarks.log() | ||
}) | ||
.run() |
@@ -1,1 +0,1 @@ | ||
const R=require("./compose"),add=(a,b)=>{if(b===void 0){return c=>add(a,c);}else{return a+b;}},adjust=(d,e,f)=>{if(e===void 0){return(g,h)=>adjust(d,g,h);}else if(f===void 0){return j=>adjust(d,e,j);}else{return f.map((k,l)=>{if(l===e){return d(f[e]);}else{return k;}});}},any=(m,n)=>{if(n===void 0){return o=>any(m,o);}else{let p=!1;n.map(q=>{if(m(q)===!0){p=!0;}});return p;}},append=(r,s)=>{if(s===void 0){return t=>append(r,t);}else{const u=s;u.unshift(r);return u;}},contains=(v,w)=>{if(w===void 0){return x=>contains(v,x);}else{return any(y=>v===y,w);}},filter=(z,A)=>{if(A===void 0){return B=>filter(z,B);}else{return A.filter(z);}},flatten=C=>{const D=[];C.map(E=>{if(E instanceof Array){E.map(F=>{if(F instanceof Array){F.map(G=>{if(G instanceof Array){D.push(...G);}else{D.push(G);}});}else{D.push(F);}});}else{D.push(E);}});return D;},drop=(H,I)=>{if(I===void 0){return J=>drop(H,J);}else{const K=I;return K.slice(H);}},dropLast=(L,M)=>{if(M===void 0){return N=>dropLast(L,N);}else{const O=M;return O.slice(0,-L);}},head=P=>dropLast(P.length-1,P),init=Q=>dropLast(1,Q),join=(S,T)=>{if(T===void 0){return U=>join(S,U);}else{return T.join(S);}},map=(V,W)=>{if(W===void 0){return X=>map(V,X);}else{return W.map(V);}},last=Y=>Y[Y.length-1],prepend=(Z,a1)=>{if(a1===void 0){return b1=>prepend(Z,b1);}else{const c1=a1;c1.push(Z);return c1;}},range=(d1,e1)=>{const f1=[];for(let i=d1;i<e1;i++){f1.push(i);}return f1;},subtract=(a,b)=>{if(b===void 0){return c=>subtract(a,c);}else{return a-b;}},split=(g1,h1)=>{if(h1===void 0){return i1=>split(g1,i1);}else{return h1.split(g1);}},tail=j1=>drop(1,j1);module.exports.add=add;module.exports.adjust=adjust;module.exports.any=any;module.exports.append=append;module.exports.contains=contains;module.exports.compose=R.compose;module.exports.drop=drop;module.exports.dropLast=dropLast;module.exports.filter=filter;module.exports.flatten=flatten;module.exports.head=head;module.exports.init=init;module.exports.join=join;module.exports.last=last;module.exports.map=map;module.exports.prepend=prepend;module.exports.range=range;module.exports.split=split;module.exports.subtract=subtract;module.exports.tail=tail; | ||
const R=require("./compose"),add=(a,b)=>{if(b===void 0){return c=>add(a,c);}else{return a+b;}},adjust=(d,e,f)=>{if(e===void 0){return(g,h)=>adjust(d,g,h);}else if(f===void 0){return j=>adjust(d,e,j);}else{return f.map((k,l)=>{if(l===e){return d(f[e]);}else{return k;}});}},any=(m,n)=>{if(n===void 0){return o=>any(m,o);}else{let p=!1;n.map(q=>{if(m(q)===!0){p=!0;}});return p;}},append=(r,s)=>{if(s===void 0){return t=>append(r,t);}else{const u=s;u.unshift(r);return u;}},contains=(v,w)=>{if(w===void 0){return x=>contains(v,x);}else{return any(y=>v===y,w);}},filter=(z,A)=>{if(A===void 0){return B=>filter(z,B);}else{return A.filter(z);}},flatten=C=>{const D=[];C.map(E=>{if(E instanceof Array){E.map(F=>{if(F instanceof Array){F.map(G=>{if(G instanceof Array){D.push(...G);}else{D.push(G);}});}else{D.push(F);}});}else{D.push(E);}});return D;},drop=(H,I)=>{if(I===void 0){return J=>drop(H,J);}else{const K=I;return K.slice(H);}},dropLast=(L,M)=>{if(M===void 0){return N=>dropLast(L,N);}else{const O=M;return O.slice(0,-L);}},head=P=>dropLast(P.length-1,P),init=Q=>dropLast(1,Q),join=(S,T)=>{if(T===void 0){return U=>join(S,U);}else{return T.join(S);}},map=(V,W)=>{if(W===void 0){return X=>map(V,X);}else{return W.map(V);}},last=Y=>Y[Y.length-1],prepend=(Z,a1)=>{if(a1===void 0){return b1=>prepend(Z,b1);}else{const c1=a1;c1.push(Z);return c1;}},propEq=(d1,e1,f1)=>{if(e1===void 0){return(g1,h1)=>propEq(d1,g1,h1);}else if(f1===void 0){return i1=>propEq(d1,e1,i1);}else{return f1[d1]===e1;}},range=(j1,k1)=>{const l1=[];for(let i=j1;i<k1;i++){l1.push(i);}return l1;},repeat=(a,m1)=>{if(m1===void 0){return n1=>repeat(a,n1);}else{const o1=range(0,m1);return o1.fill(a);}},replace=(p1,q1,r1)=>{if(q1===void 0){return(s1,t1)=>replace(p1,s1,t1);}else if(r1===void 0){return u1=>replace(p1,q1,u1);}else{return r1.replace(p1,q1);}},subtract=(a,b)=>{if(b===void 0){return c=>subtract(a,c);}else{return a-b;}},sort=(fn,w1)=>{if(w1===void 0){return x1=>sort(fn,x1);}else{const y1=w1;return y1.sort(fn);}},sortBy=(fn,A1)=>{if(A1===void 0){return B1=>sortBy(fn,B1);}else{const C1=A1;return C1.sort((a,b)=>{const D1=fn(a),E1=fn(b);return D1<E1?-1:D1>E1?1:0;});}},split=(F1,G1)=>{if(G1===void 0){return H1=>split(F1,H1);}else{return G1.split(F1);}},splitEvery=(I1,a)=>{if(a===void 0){return J1=>splitEvery(I1,J1);}else{I1=I1>1?I1:1;const K1=[];let L1=0;while(L1<a.length){K1.push(a.slice(L1,L1+=I1));}return K1;}},tail=M1=>drop(1,M1),take=(N1,O1)=>{if(O1===void 0){return P1=>take(N1,P1);}else{const Q1=O1;return Q1.slice(0,N1);}},takeLast=(R1,S1)=>{if(S1===void 0){return T1=>dropLast(R1,T1);}else{const U1=S1;R1=R1>U1.length?U1.length:R1;return U1.slice(U1.length-R1);}},toLower=a=>a.toLowerCase(),toUpper=a=>a.toUpperCase(),test=(V1,W1)=>{if(W1===void 0){return X1=>test(V1,X1);}else{return W1.search(V1)===-1?!1:!0;}},type=a=>{if(a===null){return"Null";}else if(a.splice!==void 0){return"Array";}else if(a.freeze!==void 0){return"Object";}else if(typeof a==="boolean"){return"Boolean";}else if(typeof a==="number"){return"Number";}else if(typeof a==="string"){return"String";}else if(a===void 0){return"Undefined";}else if(a instanceof RegExp){return"RegExp";}return"Object";},values=Y1=>{const Z1=[];for(key in Y1){Z1.push(Y1[key]);}return Z1;},uniq=a2=>{const b2=[];return a2.filter(c2=>{if(b2.includes(c2)){return!1;}else{b2.push(c2);return!0;}});},update=(d2,e2,f2)=>{if(e2===void 0){return(g2,h2)=>update(d2,g2,h2);}else if(f2===void 0){return i2=>update(d2,e2,i2);}else{return f2.fill(d2,e2,e2+1);}};module.exports.add=add;module.exports.adjust=adjust;module.exports.any=any;module.exports.append=append;module.exports.contains=contains;module.exports.compose=R.compose;module.exports.drop=drop;module.exports.dropLast=dropLast;module.exports.filter=filter;module.exports.flatten=flatten;module.exports.head=head;module.exports.init=init;module.exports.join=join;module.exports.last=last;module.exports.map=map;module.exports.prepend=prepend;module.exports.propEq=propEq;module.exports.range=range;module.exports.repeat=repeat;module.exports.replace=replace;module.exports.sort=sort;module.exports.sortBy=sortBy;module.exports.split=split;module.exports.splitEvery=splitEvery;module.exports.subtract=subtract;module.exports.tail=tail;module.exports.take=take;module.exports.takeLast=takeLast;module.exports.test=test;module.exports.toLower=toLower;module.exports.toUpper=toUpper;module.exports.type=type;module.exports.values=values;module.exports.uniq=uniq;module.exports.update=update; |
{ | ||
"name": "rambda", | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"description": "Lightweight alternative to Ramda", | ||
@@ -30,5 +30,5 @@ "main": "index.js", | ||
"benchmark": "^2.1.3", | ||
"jest": "^18.1.0", | ||
"ramda": "*" | ||
"ramda": "*", | ||
"jest": "^18.1.0" | ||
} | ||
} |
159
rambda.js
@@ -145,6 +145,16 @@ const R = require("./compose") | ||
const propEq = (key,val, obj)=>{ | ||
if(val===undefined){ | ||
return (valHolder,objHolder)=>propEq(key, valHolder, objHolder) | ||
}else if(obj === undefined){ | ||
return holder => propEq(key,val, holder) | ||
}else{ | ||
return obj[key] === val | ||
} | ||
} | ||
const range = (start, end) => { | ||
const willReturn = [] | ||
for (let i = start; i < end; i++) { | ||
willReturn.push(i) | ||
willReturn.push(i); | ||
} | ||
@@ -155,2 +165,21 @@ | ||
const repeat = (a, num) =>{ | ||
if(num === undefined){ | ||
return holder => repeat(a, holder) | ||
}else{ | ||
const willReturn = range(0,num) | ||
return willReturn.fill(a) | ||
} | ||
} | ||
const replace = (regex, replacer,str) => { | ||
if(replacer === undefined){ | ||
return (replacerHolder, strHolder) => replace(regex, replacerHolder, strHolder) | ||
}else if(str === undefined){ | ||
return holder => replace(regex, replacer, holder) | ||
}else{ | ||
return str.replace(regex, replacer) | ||
} | ||
} | ||
const subtract = (a,b)=>{ | ||
@@ -164,2 +193,26 @@ if(b === undefined){ | ||
const sort = (fn,arr) =>{ | ||
if(arr===undefined){ | ||
return holder => sort(fn,holder) | ||
}else{ | ||
const arrClone = arr | ||
return arrClone.sort(fn) | ||
} | ||
} | ||
const sortBy = (fn,arr) =>{ | ||
if(arr===undefined){ | ||
return holder => sortBy(fn,holder) | ||
}else{ | ||
const arrClone = arr | ||
return arrClone.sort((a,b)=>{ | ||
const fnA = fn(a) | ||
const fnB = fn(b) | ||
return fnA < fnB ? -1 : fnA > fnB ? 1 : 0 | ||
}) | ||
} | ||
} | ||
const split = (glue,str) =>{ | ||
@@ -173,10 +226,77 @@ if(str===undefined){ | ||
const splitEvery = (num,a) =>{ | ||
if(a===undefined){ | ||
return holder => splitEvery(num,holder) | ||
}else{ | ||
num = num > 1 ? | ||
num : | ||
1 | ||
const willReturn = [] | ||
let counter = 0 | ||
while(counter<a.length){ | ||
willReturn.push(a.slice(counter, counter += num)) | ||
} | ||
return willReturn | ||
} | ||
} | ||
const tail = arr => drop(1, arr) | ||
const take = (takeNumber, arr) => { | ||
if(arr === undefined){ | ||
return holder => take(takeNumber, holder) | ||
}else{ | ||
const arrClone = arr | ||
return arrClone.slice(0,takeNumber) | ||
} | ||
} | ||
const takeLast = (takeNumber, arr) => { | ||
if(arr === undefined){ | ||
return holder => dropLast(takeNumber, holder) | ||
}else{ | ||
const arrClone = arr | ||
takeNumber = takeNumber > arrClone.length ? | ||
arrClone.length : | ||
takeNumber | ||
return arrClone.slice(arrClone.length - takeNumber) | ||
} | ||
} | ||
const toLower = a => a.toLowerCase() | ||
const toUpper = a => a.toUpperCase() | ||
const test = (regex, str) =>{ | ||
if(str === undefined){ | ||
return holder => test(regex, holder) | ||
}else{ | ||
return str.search(regex) === -1 ? | ||
false : | ||
true | ||
} | ||
} | ||
const type = a => { | ||
let b = R.compose( | ||
filter(val=>a instanceof val) | ||
)([Array, Number]) | ||
console.log(b) | ||
return "" | ||
if(a === null){ | ||
return "Null" | ||
}else if(a.splice!== undefined){ | ||
return "Array" | ||
}else if(a.freeze !== undefined){ | ||
return "Object" | ||
}else if(typeof(a)==="boolean"){ | ||
return "Boolean" | ||
} else if(typeof(a) === "number"){ | ||
return "Number" | ||
}else if(typeof(a) === "string"){ | ||
return "String" | ||
} else if(a === undefined){ | ||
return "Undefined" | ||
}else if(a instanceof RegExp){ | ||
return "RegExp" | ||
} | ||
return "Object" | ||
} | ||
@@ -214,18 +334,2 @@ | ||
const updateB = (newValue,index,arr)=>{ | ||
if(index === undefined){ | ||
return (indexHolder, arrHolder) => update(newValue,indexHolder, arrHolder) | ||
}else if(arr === undefined){ | ||
return holder => update(newValue,index, holder) | ||
}else{ | ||
return arr.map((val,key)=>{ | ||
if(key===index){ | ||
return newValue | ||
}else{ | ||
return val | ||
} | ||
}) | ||
} | ||
} | ||
module.exports.add = add | ||
@@ -247,6 +351,17 @@ module.exports.adjust = adjust | ||
module.exports.prepend = prepend | ||
module.exports.propEq = propEq | ||
module.exports.range = range | ||
module.exports.repeat = repeat | ||
module.exports.replace = replace | ||
module.exports.sort = sort | ||
module.exports.sortBy = sortBy | ||
module.exports.split = split | ||
module.exports.splitEvery = splitEvery | ||
module.exports.subtract = subtract | ||
module.exports.tail = tail | ||
module.exports.take = take | ||
module.exports.takeLast = takeLast | ||
module.exports.test = test | ||
module.exports.toLower = toLower | ||
module.exports.toUpper = toUpper | ||
module.exports.type = type | ||
@@ -253,0 +368,0 @@ module.exports.values = values |
161
test.js
@@ -151,2 +151,18 @@ const Ramda = require("ramda") | ||
it("propEq",()=>{ | ||
expect( | ||
R.propEq( | ||
"foo", | ||
"bar" | ||
)({foo:"bar"}) | ||
).toBeTruthy() | ||
expect( | ||
R.propEq( | ||
"foo", | ||
"bar" | ||
)({foo:"baz"}) | ||
).toBeFalsy() | ||
}) | ||
it("range",()=>{ | ||
@@ -161,2 +177,57 @@ expect( | ||
it("repeat",()=>{ | ||
expect( | ||
R.replace(/\s/g)("|")("foo bar baz") | ||
).toEqual("foo|bar|baz") | ||
}) | ||
it("replace",()=>{ | ||
expect( | ||
R.repeat('foo', 3) | ||
).toEqual(["foo","foo","foo"]) | ||
expect( | ||
R.repeat({}, 3) | ||
).toEqual([{},{},{}]) | ||
}) | ||
it("sort",()=>{ | ||
expect( | ||
R.sort( | ||
(a,b)=> a>b | ||
)(["foo","bar","baz"]) | ||
).toEqual(["bar", "baz", "foo"]) | ||
expect( | ||
R.sort( | ||
(a,b)=> a-b | ||
)([2,3,1]) | ||
).toEqual([1,2,3]) | ||
}) | ||
it("sortBy",()=>{ | ||
const sortByNameCaseInsensitive = R.sortBy( | ||
R.compose( | ||
R.toLower, | ||
Ramda.prop('name') | ||
) | ||
) | ||
const alice = { | ||
name: 'ALICE', | ||
age: 101 | ||
}; | ||
const bob = { | ||
name: 'Bob', | ||
age: -10 | ||
}; | ||
const clara = { | ||
name: 'clara', | ||
age: 314.159 | ||
}; | ||
const people = [clara, bob, alice]; | ||
expect( | ||
sortByNameCaseInsensitive(people) | ||
).toEqual( [alice, bob, clara]) | ||
}) | ||
it("split",()=>{ | ||
@@ -170,2 +241,92 @@ expect( | ||
it("splitEvery",()=>{ | ||
expect( | ||
R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]) | ||
).toEqual([[1, 2, 3], [4, 5, 6], [7]]) | ||
expect( | ||
R.splitEvery(3, 'foobarbaz') | ||
).toEqual(["foo","bar","baz"]) | ||
}) | ||
it("take",()=>{ | ||
expect( | ||
R.take(1, ['foo', 'bar', 'baz']) | ||
).toEqual(['foo']) | ||
expect( | ||
R.take(3, 'rambda') | ||
).toEqual("ram") | ||
}) | ||
it("takeLast",()=>{ | ||
expect( | ||
R.takeLast(1, ['foo', 'bar', 'baz']) | ||
).toEqual(['baz']) | ||
expect( | ||
R.takeLast(10, ['foo', 'bar', 'baz']) | ||
).toEqual(['foo', 'bar', 'baz']) | ||
expect( | ||
R.takeLast(3, 'rambda') | ||
).toEqual("bda") | ||
}) | ||
it("test",()=>{ | ||
expect( | ||
R.test(/^x/, 'xyz') | ||
).toBeTruthy() | ||
expect( | ||
R.test(/^y/, 'xyz') | ||
).toBeFalsy() | ||
}) | ||
it("toLower",()=>{ | ||
expect( | ||
R.toLower("FOO|BAR|BAZ") | ||
).toEqual("foo|bar|baz") | ||
}) | ||
it("toUpper",()=>{ | ||
expect( | ||
R.compose( | ||
R.join(""), | ||
R.map(R.toUpper), | ||
R.split(""), | ||
)("foo|bar|baz") | ||
).toEqual("FOO|BAR|BAZ") | ||
}) | ||
it("type",()=>{ | ||
expect( | ||
R.type({}) | ||
).toEqual("Object") | ||
expect( | ||
R.type(1) | ||
).toEqual("Number") | ||
expect( | ||
R.type(false) | ||
).toEqual("Boolean") | ||
expect( | ||
R.type("foo") | ||
).toEqual("String") | ||
expect( | ||
R.type(null) | ||
).toEqual("Null") | ||
expect( | ||
R.type([]) | ||
).toEqual("Array") | ||
expect( | ||
R.type(/\s/g) | ||
).toEqual("RegExp") | ||
}) | ||
it("values",()=>{ | ||
@@ -172,0 +333,0 @@ expect( |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
27328
663