You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*! * has-values <https://github.com/jonschlinkert/has-values>
* * Copyright (c) 2014-2015, 2017, Jon Schlinkert. * Released under the MIT License. */
'use strict';
var typeOf = require('kind-of'); var isNumber = require('is-number');
module.exports = function hasValue(val) { // is-number checks for NaN and other edge cases
if (isNumber(val)) { return true; }
switch (typeOf(val)) { case 'null': case 'boolean': case 'function': return true; case 'string': case 'arguments': return val.length !== 0; case 'error': return val.message !== ''; case 'array': var len = val.length; if (len === 0) { return false; } for (var i = 0; i < len; i++) { if (hasValue(val[i])) { return true; } } return false; case 'file': case 'map': case 'set': return val.size !== 0; case 'object': var keys = Object.keys(val); if (keys.length === 0) { return false; } for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (hasValue(val[key])) { return true; } } return false; default: { return false; } } };
|