UNPKG

foop

Version:

interfaces that describe their intentions.

36 lines (33 loc) 2.73 kB
var pipeTwo = require('../fp/pipeTwo') var numberFromZero = require('./numberFromZero') var length = require('./length') /** * @desc when length > 1, use length-1 * otherwise, when length == 1, use 0 * default, use length * * @memberOf util * @since 5.0.0-beta.2 * @name lengthFromZero * * @param {Array | Object | number} obj with length * @return {number} obj length from 0 * * @see util/length * @see util/lengthMinusOne * @see util/numberFromZero * * @example * * lengthFromZero([1]) //=> 1 * lengthFromZero([]) //=> 0 * lengthFromZero([1, 2, 3]) //=> 2 * lengthFromZero({length: -1}) //=> 0 * */ module.exports = pipeTwo(length, numberFromZero) // * @TODO lense to use an object, or transform it to one with .length? // * const len = prop('length') // * // when isObj, use len, otherwise, value // * const coerceLength = lense([isObj, len]) //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZ3RoRnJvbVplcm8uanMiLCJzb3VyY2VzIjpbImxlbmd0aEZyb21aZXJvLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBpcGVUd28gPSByZXF1aXJlKCcuLi9mcC9waXBlVHdvJylcbmNvbnN0IG51bWJlckZyb21aZXJvID0gcmVxdWlyZSgnLi9udW1iZXJGcm9tWmVybycpXG5jb25zdCBsZW5ndGggPSByZXF1aXJlKCcuL2xlbmd0aCcpXG5cbi8qKlxuICogQGRlc2Mgd2hlbiBsZW5ndGggPiAxLCB1c2UgbGVuZ3RoLTFcbiAqICAgICAgIG90aGVyd2lzZSwgd2hlbiBsZW5ndGggPT0gMSwgdXNlIDBcbiAqICAgICAgIGRlZmF1bHQsIHVzZSBsZW5ndGhcbiAqXG4gKiBAbWVtYmVyT2YgdXRpbFxuICogQHNpbmNlIDUuMC4wLWJldGEuMlxuICogQG5hbWUgbGVuZ3RoRnJvbVplcm9cbiAqXG4gKiBAcGFyYW0ge0FycmF5IHwgT2JqZWN0IHwgbnVtYmVyfSBvYmogd2l0aCBsZW5ndGhcbiAqIEByZXR1cm4ge251bWJlcn0gb2JqIGxlbmd0aCBmcm9tIDBcbiAqXG4gKiBAc2VlIHV0aWwvbGVuZ3RoXG4gKiBAc2VlIHV0aWwvbGVuZ3RoTWludXNPbmVcbiAqIEBzZWUgdXRpbC9udW1iZXJGcm9tWmVyb1xuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgbGVuZ3RoRnJvbVplcm8oWzFdKSAgICAgICAgLy89PiAxXG4gKiAgICBsZW5ndGhGcm9tWmVybyhbXSkgICAgICAgICAvLz0+IDBcbiAqICAgIGxlbmd0aEZyb21aZXJvKFsxLCAyLCAzXSkgIC8vPT4gMlxuICogICAgbGVuZ3RoRnJvbVplcm8oe2xlbmd0aDogLTF9KSAgIC8vPT4gMFxuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBwaXBlVHdvKGxlbmd0aCwgbnVtYmVyRnJvbVplcm8pXG5cbi8vICogQFRPRE8gbGVuc2UgdG8gdXNlIGFuIG9iamVjdCwgb3IgdHJhbnNmb3JtIGl0IHRvIG9uZSB3aXRoIC5sZW5ndGg/XG4vLyAqICBjb25zdCBsZW4gPSBwcm9wKCdsZW5ndGgnKVxuLy8gKiAgLy8gd2hlbiBpc09iaiwgdXNlIGxlbiwgb3RoZXJ3aXNlLCB2YWx1ZVxuLy8gKiAgY29uc3QgY29lcmNlTGVuZ3RoID0gbGVuc2UoW2lzT2JqLCBsZW5dKVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0FBQ3hDQSxHQUFLLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztBQUNsREEsR0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCbEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQzs7Ozs7OyJ9