hu
Version:
Functional utility helper library
73 lines • 1.94 kB
JavaScript
{
var _ns_ = {
id: 'hu.lib.macros',
doc: void 0
};
var hu_lib_function = require('./function');
var curry = hu_lib_function.curry;
var compose = hu_lib_function.compose;
var hu_lib_type = require('./type');
var isString = hu_lib_type.isString;
var isArray = hu_lib_type.isArray;
var isNumber = hu_lib_type.isNumber;
var isUndef = hu_lib_type.isUndef;
var isObject = hu_lib_type.isObject;
}
void 0;
void 0;
void 0;
void 0;
void 0;
void 0;
void 0;
void 0;
void 0;
void 0;
void 0;
{
var _ns_ = {
id: 'hu.lib.array',
doc: void 0
};
var hu_lib_type = require('./type');
var isArray = hu_lib_type.isArray;
}
var inArray = exports.inArray = function inArray() {
var args = Array.prototype.slice.call(arguments, 0);
return curry(function (arr, element) {
return arr.indexOf(element) >= 0;
}).apply(void 0, args);
};
var head = exports.head = function head(arr) {
return isArray(arr) ? arr[0] : arr;
};
var first = exports.first = head;
var tail = exports.tail = function tail(arr) {
return isArray(arr) ? arr.slice(1) : arr;
};
var rest = exports.rest = tail;
var last = exports.last = function last(arr) {
return isArray(arr) ? arr.slice(-1) : arr;
};
var end = exports.end = last;
var initial = exports.initial = function initial(arr) {
return isArray(arr) ? arr.slice(0, -1) : arr;
};
var flatten = exports.flatten = function flatten() {
switch (arguments.length) {
case 0:
return [];
case 1:
var arr = arguments[0];
return flatten(arr, []);
case 2:
var arr = arguments[0];
var acc = arguments[1];
isArray(arr) ? arr.forEach(function (el) {
return flatten(el, acc);
}) : (isUndef(arr) ? false : true) ? acc.push(arr) : void 0;
return acc;
default:
throw RangeError('Wrong number of arguments passed');
}
};