UNPKG

foop

Version:

interfaces that describe their intentions.

85 lines (79 loc) 5.98 kB
var isObjNotNull = require('./objNotNull') var isArray = require('./array') var isRegExp = require('./regexp') var isError = require('./error') var isDate = require('./date') var isSymbol = require('./symbol') var isAsyncish = require('./asyncish') var isPrimitive = require('./primitive') /** * @desc is able to be iterated on * @since 5.0.0-beta.1 * * @param {*} x node is iteratable * @return {boolean} x isIteratable * * {@link https://github.com/canjs/can-util/blob/master/js/is-iterable/is-iterable.js can-is-iteratable} * @see {@link can-is-iteratable} * * @extends isObj * @extends isArray * @extends isPrimitive * @extends isRegExp * @extends isDate * @extends isSymbol * @extends isAsync * @extends isError * * @example * * isIteratable([]) //=> true * isIteratable({}) //=> true * isIteratable(new Date()) //=> false * isIteratable(Symbol('eh')) //=> false * isIteratable(new Promise(r => r())) //=> false * isIteratable(new Error('eh')) //=> false * */ module.exports = function isIteratable(x) { // ez ones if (isObjNotNull(x) || isArray(x)) { return true } var notIteratable = isPrimitive(x) || isRegExp(x) || isDate(x) || isSymbol(x) || isAsyncish(x) || // isNative(x) || isError(x) // not-not is iteratable return !notIteratable // if (notIteratable) return false // else return true // if (isNullOrUndefined(node)) { // } // else if (isString(node)) { // } // else if (isNumber(node)) { // } // else if (isBoolean(node)) { // } // else if (isRegExp(node)) { // } // else if (isDate(node)) { // } // else if (isSymbol(node) || isAsyncish(node)) { // } // else if (isNative(node)) { // } // else { // return true // } // return false } // function isSpecial(x) { // // isPromise(x) || // return isSymbol(x) || isError(x) || // // || isGenerator(x) // } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlcmF0YWJsZS5qcyIsInNvdXJjZXMiOlsiaXRlcmF0YWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc09iak5vdE51bGwgPSByZXF1aXJlKCcuL29iak5vdE51bGwnKVxuY29uc3QgaXNBcnJheSA9IHJlcXVpcmUoJy4vYXJyYXknKVxuY29uc3QgaXNSZWdFeHAgPSByZXF1aXJlKCcuL3JlZ2V4cCcpXG5jb25zdCBpc0Vycm9yID0gcmVxdWlyZSgnLi9lcnJvcicpXG5jb25zdCBpc0RhdGUgPSByZXF1aXJlKCcuL2RhdGUnKVxuY29uc3QgaXNTeW1ib2wgPSByZXF1aXJlKCcuL3N5bWJvbCcpXG5jb25zdCBpc0FzeW5jaXNoID0gcmVxdWlyZSgnLi9hc3luY2lzaCcpXG5jb25zdCBpc1ByaW1pdGl2ZSA9ICByZXF1aXJlKCcuL3ByaW1pdGl2ZScpXG5cbi8qKlxuICogQGRlc2MgaXMgYWJsZSB0byBiZSBpdGVyYXRlZCBvblxuICogQHNpbmNlIDUuMC4wLWJldGEuMVxuICpcbiAqIEBwYXJhbSAgeyp9IHggbm9kZSBpcyBpdGVyYXRhYmxlXG4gKiBAcmV0dXJuIHtib29sZWFufSB4IGlzSXRlcmF0YWJsZVxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vY2FuanMvY2FuLXV0aWwvYmxvYi9tYXN0ZXIvanMvaXMtaXRlcmFibGUvaXMtaXRlcmFibGUuanMgY2FuLWlzLWl0ZXJhdGFibGV9XG4gKiBAc2VlIHtAbGluayBjYW4taXMtaXRlcmF0YWJsZX1cbiAqXG4gKiBAZXh0ZW5kcyBpc09ialxuICogQGV4dGVuZHMgaXNBcnJheVxuICogQGV4dGVuZHMgaXNQcmltaXRpdmVcbiAqIEBleHRlbmRzIGlzUmVnRXhwXG4gKiBAZXh0ZW5kcyBpc0RhdGVcbiAqIEBleHRlbmRzIGlzU3ltYm9sXG4gKiBAZXh0ZW5kcyBpc0FzeW5jXG4gKiBAZXh0ZW5kcyBpc0Vycm9yXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgaXNJdGVyYXRhYmxlKFtdKSAgICAgICAgICAgICAgICAgICAgIC8vPT4gdHJ1ZVxuICogIGlzSXRlcmF0YWJsZSh7fSkgICAgICAgICAgICAgICAgICAgICAvLz0+IHRydWVcbiAqICBpc0l0ZXJhdGFibGUobmV3IERhdGUoKSkgICAgICAgICAgICAgLy89PiBmYWxzZVxuICogIGlzSXRlcmF0YWJsZShTeW1ib2woJ2VoJykpICAgICAgICAgICAvLz0+IGZhbHNlXG4gKiAgaXNJdGVyYXRhYmxlKG5ldyBQcm9taXNlKHIgPT4gcigpKSkgIC8vPT4gZmFsc2VcbiAqICBpc0l0ZXJhdGFibGUobmV3IEVycm9yKCdlaCcpKSAgICAgICAgLy89PiBmYWxzZVxuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0l0ZXJhdGFibGUoeCkge1xuICAvLyBleiBvbmVzXG4gIGlmIChpc09iak5vdE51bGwoeCkgfHwgaXNBcnJheSh4KSkgcmV0dXJuIHRydWVcblxuICBjb25zdCBub3RJdGVyYXRhYmxlID1cbiAgICBpc1ByaW1pdGl2ZSh4KSB8fFxuICAgIGlzUmVnRXhwKHgpIHx8XG4gICAgaXNEYXRlKHgpIHx8XG4gICAgaXNTeW1ib2woeCkgfHxcbiAgICBpc0FzeW5jaXNoKHgpIHx8XG4gICAgLy8gaXNOYXRpdmUoeCkgfHxcbiAgICBpc0Vycm9yKHgpXG5cbiAgLy8gbm90LW5vdCBpcyBpdGVyYXRhYmxlXG4gIHJldHVybiAhbm90SXRlcmF0YWJsZVxuXG4gIC8vIGlmIChub3RJdGVyYXRhYmxlKSByZXR1cm4gZmFsc2VcbiAgLy8gZWxzZSByZXR1cm4gdHJ1ZVxuICAvLyBpZiAoaXNOdWxsT3JVbmRlZmluZWQobm9kZSkpIHtcbiAgLy8gfVxuICAvLyBlbHNlIGlmIChpc1N0cmluZyhub2RlKSkge1xuICAvLyB9XG4gIC8vIGVsc2UgaWYgKGlzTnVtYmVyKG5vZGUpKSB7XG4gIC8vIH1cbiAgLy8gZWxzZSBpZiAoaXNCb29sZWFuKG5vZGUpKSB7XG4gIC8vIH1cbiAgLy8gZWxzZSBpZiAoaXNSZWdFeHAobm9kZSkpIHtcbiAgLy8gfVxuICAvLyBlbHNlIGlmIChpc0RhdGUobm9kZSkpIHtcbiAgLy8gfVxuICAvLyBlbHNlIGlmIChpc1N5bWJvbChub2RlKSB8fCBpc0FzeW5jaXNoKG5vZGUpKSB7XG4gIC8vIH1cbiAgLy8gZWxzZSBpZiAoaXNOYXRpdmUobm9kZSkpIHtcbiAgLy8gfVxuICAvLyBlbHNlIHtcbiAgLy8gICByZXR1cm4gdHJ1ZVxuICAvLyB9XG4gIC8vIHJldHVybiBmYWxzZVxufVxuXG4vLyBmdW5jdGlvbiBpc1NwZWNpYWwoeCkge1xuLy8gICAvLyBpc1Byb21pc2UoeCkgfHxcbi8vICAgcmV0dXJuIGlzU3ltYm9sKHgpIHx8IGlzRXJyb3IoeCkgfHxcbi8vICAgLy8gIHx8IGlzR2VuZXJhdG9yKHgpXG4vLyB9XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDNUNBLEdBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUNsQ0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFDbENBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUNoQ0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ3BDQSxHQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDeENBLEdBQUssQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStCM0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFlBQVksQ0FBQyxDQUFDLEVBQUU7O0VBRXhDLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFBLE9BQU8sSUFBSSxFQUFBOztFQUU5Q0EsR0FBSyxDQUFDLGFBQWE7SUFDakIsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNkLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ1QsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNYLFVBQVUsQ0FBQyxDQUFDLENBQUM7O0lBRWIsT0FBTyxDQUFDLENBQUMsQ0FBQzs7O0VBR1osT0FBTyxDQUFDLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXdCdEI7Ozs7Ozs7In0=