UNPKG

foop

Version:

interfaces that describe their intentions.

54 lines (48 loc) 4.69 kB
var isFunction = require('../../is/function') var isObjTag = require('../../is/objTag') var curry = require('../../fp/curry') var keys = require('../../util/keys') var preAllocate = require('../../array/preAllocate') var reduce = require('./_reduce') /** * @desc `while (index < list.length) push fn(list[index++])` * @name _map * @alias baseMaps * @since 5.0.0-beta.1 * @memberOf loop * * {@link https://github.com/ramda/ramda/blob/master/src/internal/_map.js ramda-_map} * @see {@link ramda-_map} * * @param {Function} fn function to apply * @param {Function|List} functorList function/list * @return {Array} */ function _map(fn, functorList) { var idx = 0 var len = functorList.length var result = preAllocate(len) while (idx < len) { result[idx] = fn(functorList[idx]) idx += 1 } return result } function map(fn, functor) { if (isFunction(functor)) { return curry(functor.length, function() { return fn.call(this, functor.apply(this, arguments)) }) } else if (isObjTag(functor)) { return reduce(function(acc, key) { acc[key] = fn(functor[key]) return acc }, {}, keys(functor)) } else { return _map(fn, functor) } } module.exports = map //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX21hcC5qcyIsInNvdXJjZXMiOlsiX21hcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi4vLi4vaXMvZnVuY3Rpb24nKVxuY29uc3QgaXNPYmpUYWcgPSByZXF1aXJlKCcuLi8uLi9pcy9vYmpUYWcnKVxuY29uc3QgY3VycnkgPSByZXF1aXJlKCcuLi8uLi9mcC9jdXJyeScpXG5jb25zdCBrZXlzID0gcmVxdWlyZSgnLi4vLi4vdXRpbC9rZXlzJylcbmNvbnN0IHByZUFsbG9jYXRlID0gcmVxdWlyZSgnLi4vLi4vYXJyYXkvcHJlQWxsb2NhdGUnKVxuY29uc3QgcmVkdWNlID0gcmVxdWlyZSgnLi9fcmVkdWNlJylcblxuLyoqXG4gKiBAZGVzYyBgd2hpbGUgKGluZGV4IDwgbGlzdC5sZW5ndGgpIHB1c2ggZm4obGlzdFtpbmRleCsrXSlgXG4gKiBAbmFtZSBfbWFwXG4gKiBAYWxpYXMgYmFzZU1hcHNcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjFcbiAqIEBtZW1iZXJPZiBsb29wXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9yYW1kYS9yYW1kYS9ibG9iL21hc3Rlci9zcmMvaW50ZXJuYWwvX21hcC5qcyByYW1kYS1fbWFwfVxuICogQHNlZSB7QGxpbmsgcmFtZGEtX21hcH1cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBmdW5jdGlvbiB0byBhcHBseVxuICogQHBhcmFtIHtGdW5jdGlvbnxMaXN0fSBmdW5jdG9yTGlzdCBmdW5jdGlvbi9saXN0XG4gKiBAcmV0dXJuIHtBcnJheX1cbiAqL1xuZnVuY3Rpb24gX21hcChmbiwgZnVuY3Rvckxpc3QpIHtcbiAgbGV0IGlkeCA9IDBcbiAgY29uc3QgbGVuID0gZnVuY3Rvckxpc3QubGVuZ3RoXG4gIGNvbnN0IHJlc3VsdCA9IHByZUFsbG9jYXRlKGxlbilcblxuICB3aGlsZSAoaWR4IDwgbGVuKSB7XG4gICAgcmVzdWx0W2lkeF0gPSBmbihmdW5jdG9yTGlzdFtpZHhdKVxuICAgIGlkeCArPSAxXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIG1hcChmbiwgZnVuY3Rvcikge1xuICBpZiAoaXNGdW5jdGlvbihmdW5jdG9yKSkge1xuICAgIHJldHVybiBjdXJyeShmdW5jdG9yLmxlbmd0aCwgZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCBmdW5jdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpXG4gICAgfSlcbiAgfVxuICBlbHNlIGlmIChpc09ialRhZyhmdW5jdG9yKSkge1xuICAgIHJldHVybiByZWR1Y2UoZnVuY3Rpb24oYWNjLCBrZXkpIHtcbiAgICAgIGFjY1trZXldID0gZm4oZnVuY3RvcltrZXldKVxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIHt9LCBrZXlzKGZ1bmN0b3IpKVxuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiBfbWFwKGZuLCBmdW5jdG9yKVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwXG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztBQUMvQ0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7QUFDM0NBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0FBQ3ZDQSxHQUFLLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUN2Q0EsR0FBSyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUM7QUFDdERBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWdCbkMsU0FBUyxJQUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRTtFQUM3QkMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0VBQ1hELEdBQUssQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU07RUFDOUJBLEdBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQzs7RUFFL0IsT0FBTyxHQUFHLEdBQUcsR0FBRyxFQUFFO0lBQ2hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLEdBQUcsSUFBSSxDQUFDO0dBQ1Q7O0VBRUQsT0FBTyxNQUFNO0NBQ2Q7O0FBRUQsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRTtFQUN4QixJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUN2QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVc7TUFDdEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztLQUNyRCxDQUFDO0dBQ0g7T0FDSSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFTLEdBQUcsRUFBRSxHQUFHLEVBQUU7TUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7TUFDM0IsT0FBTyxHQUFHO0tBQ1gsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ3RCO09BQ0k7SUFDSCxPQUFPLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO0dBQ3pCO0NBQ0Y7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHOyJ9