UNPKG

hu

Version:

Functional utility helper library

73 lines 1.94 kB
{ 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'); } };