Comparing version 0.11.3 to 0.12.0
@@ -159,2 +159,18 @@ (function (global, factory) { | ||
/** | ||
* compact : [a] -> [a] | ||
*/ | ||
function compact (xs) { | ||
var i = 0 | ||
, len = xs.length | ||
, res = [] | ||
for (; i < len; i++) { | ||
if (xs[i]) { | ||
res[res.length] = xs[i] | ||
} | ||
} | ||
return res | ||
} | ||
var _reverse = [].reverse | ||
@@ -373,14 +389,10 @@ | ||
var findLast = _curry2(function findLast (pred, xs) { | ||
var i = 0 | ||
, len = xs.length | ||
, x | ||
, res | ||
var i = xs.length - 1 | ||
for (; i < len; i++) { | ||
x = xs[i] | ||
if (pred(x)) { | ||
res = x | ||
while (i >= 0) { | ||
if (pred(xs[i])) { | ||
return xs[i] | ||
} | ||
i-- | ||
} | ||
return res | ||
}) | ||
@@ -450,2 +462,4 @@ | ||
, x | ||
, xi | ||
, xlen | ||
@@ -455,5 +469,8 @@ for (; i < len; i++) { | ||
if (Array.isArray(x)) { | ||
acc = _concat.call(acc, flattenDeep(x)) | ||
x = flattenDeep(x) | ||
for (xi = 0, xlen = x.length; xi < xlen; xi++) { | ||
acc[acc.length] = x[xi] | ||
} | ||
} else { | ||
acc.push(x) | ||
acc[acc.length] = x | ||
} | ||
@@ -488,29 +505,19 @@ } | ||
function _reduce (fn, acc, as) { | ||
/** | ||
* fromPairs : [[k, v]] -> {k:v} | ||
* | ||
* @since v0.7.0 | ||
*/ | ||
function fromPairs (kvs) { | ||
var i = 0 | ||
, len = as.length | ||
, len = kvs.length | ||
, acc = {} | ||
for (; i < len; i++) { | ||
acc = fn(acc, as[i]) | ||
acc[kvs[i][0]] = kvs[i][1] | ||
} | ||
return acc | ||
} | ||
/** | ||
* reduce : (b, a -> b) -> b -> [a] -> b | ||
* | ||
* @since v0.1.0 | ||
*/ | ||
var reduce = _curry3(_reduce) | ||
/** | ||
* fromPairs : [[k, v]] -> {k:v} | ||
* | ||
* @since v0.7.0 | ||
*/ | ||
var fromPairs = reduce(function fromPairs (acc, x) { | ||
acc[x[0]] = x[1] | ||
return acc | ||
}, {}) | ||
var _hasOwn = Object.prototype.hasOwnProperty | ||
@@ -801,3 +808,20 @@ | ||
function _reduce (fn, acc, as) { | ||
var i = 0 | ||
, len = as.length | ||
for (; i < len; i++) { | ||
acc = fn(acc, as[i]) | ||
} | ||
return acc | ||
} | ||
/** | ||
* reduce : (b, a -> b) -> b -> [a] -> b | ||
* | ||
* @since v0.1.0 | ||
*/ | ||
var reduce = _curry3(_reduce) | ||
/** | ||
* reduceRight : ((b, a) -> b) -> b -> [a] | ||
@@ -881,7 +905,7 @@ * | ||
/** | ||
* takeUntil : (a -> Boolean) -> [a] -> [a] | ||
* takeWhile : (a -> Boolean) -> [a] -> [a] | ||
* | ||
* @since v0.1.0 | ||
* @since v0.12.0 | ||
*/ | ||
var takeUntil = _curry2(function takeUntil (fn, xs) { | ||
var takeWhile = _curry2(function takeWhile (fn, xs) { | ||
var i = 0 | ||
@@ -891,3 +915,3 @@ , len = xs.length | ||
for (; i < len; i++) { | ||
if (fn(xs[i])) { | ||
if (!fn(xs[i])) { | ||
return _slice.call(xs, 0, i) | ||
@@ -1042,2 +1066,3 @@ } | ||
exports.cond = cond; | ||
exports.compact = compact; | ||
exports.compose = compose; | ||
@@ -1092,3 +1117,3 @@ exports.curry = curry; | ||
exports.take = take; | ||
exports.takeUntil = takeUntil; | ||
exports.takeWhile = takeWhile; | ||
exports.times = times; | ||
@@ -1095,0 +1120,0 @@ exports.toLower = toLower; |
{ | ||
"name": "redash", | ||
"version": "0.11.3", | ||
"version": "0.12.0", | ||
"description": "Compact library for writing performant functional JavaScript", | ||
@@ -5,0 +5,0 @@ "main": "dist/redash.js", |
23001
1001