UNPKG

868 BJavaScriptView Raw
1/*eslint eqeqeq: 0*/
2'use strict';
3
4var isArrayLike = require('./arrayLike'),
5 isObject = require('./object'),
6 isString = require('./string');
7
8/**
9 * Checks whether a value is empty
10 * Value is empty when:
11 * * is an array like object with length === 0
12 * * is an object without enumerable properties
13 * * is an empty string
14 *
15 * @function empty
16 *
17 * @example
18 * var is = require('predicates');
19 *
20 * is.empty(''); // true
21 * is.empty([]); // true
22 * is.empty({}); // true
23 * is.empty([1]); // false
24 * is.empty('test'); // false
25 *
26 * @param {*} value
27 * @returns {Boolean}
28 */
29module.exports = function isEmpty(value) {
30 if (isArrayLike(value)) {
31 return value.length === 0;
32 } else if (isObject(value)) {
33 return Object.keys(value).length === 0;
34 } else if (isString(value)) {
35 return value == '';
36 }
37 return false;
38};