source: node_modules/ramda-adjunct/lib/isIterable.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.3 KB
RevLine 
[d24f17c]1"use strict";
2
3exports.__esModule = true;
4exports["default"] = void 0;
5var _ramda = require("ramda");
6var _isFunction = _interopRequireDefault(require("./isFunction"));
7function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8/**
9 * Checks whether the passed value is iterable.
10 *
11 * @func isIterable
12 * @memberOf RA
13 * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}
14 * @category Type
15 * @sig * -> Boolean
16 * @param {*} val The value to test
17 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol}
18 * @return {boolean}
19 * @example
20 *
21 * RA.isIterable(['arrays', 'are', 'iterable']); //=> true
22 * RA.isIterable('strings are iterable, too'); //=> true
23 * RA.isIterable((function* () {})()); //=> true (generator objects are both iterable and iterators)
24 *
25 * RA.isIterable({}); //=> false
26 * RA.isIterable(-0); //=> false
27 * RA.isIterable(null); //=> false
28 * RA.isIterable(undefined); //=> false
29 */
30var isIterable = (0, _ramda.curryN)(1, function (val) {
31 if (typeof Symbol === 'undefined') {
32 return false;
33 }
34 return (0, _ramda.hasIn)(Symbol.iterator, Object(val)) && (0, _isFunction["default"])(val[Symbol.iterator]);
35});
36var _default = isIterable;
37exports["default"] = _default;
Note: See TracBrowser for help on using the repository browser.