1 | /*eslint eqeqeq: 0*/
|
2 | ;
|
3 |
|
4 | var 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 | */
|
29 | module.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 | };
|