From 0469abd4a9c9270a1fdc962969e36e63699af8b4 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 10 Dec 2017 21:51:33 +0100 Subject: upgrade dependencies --- node_modules/has-values/index.js | 66 +++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 21 deletions(-) (limited to 'node_modules/has-values/index.js') diff --git a/node_modules/has-values/index.js b/node_modules/has-values/index.js index 6d04ba1fe..9bebb9fcb 100644 --- a/node_modules/has-values/index.js +++ b/node_modules/has-values/index.js @@ -1,36 +1,60 @@ /*! * has-values * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. + * Copyright (c) 2014-2015, 2017, Jon Schlinkert. + * Released under the MIT License. */ 'use strict'; -module.exports = function hasValue(o, noZero) { - if (o === null || o === undefined) { - return false; - } - - if (typeof o === 'boolean') { - return true; - } +var typeOf = require('kind-of'); +var isNumber = require('is-number'); - if (typeof o === 'number') { - if (o === 0 && noZero === true) { - return false; - } +module.exports = function hasValue(val) { + // is-number checks for NaN and other edge cases + if (isNumber(val)) { return true; } - if (o.length !== undefined) { - return o.length !== 0; - } - - for (var key in o) { - if (o.hasOwnProperty(key)) { + 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; } } - return false; }; -- cgit v1.2.3