-
Notifications
You must be signed in to change notification settings - Fork 72
Expand file tree
/
Copy pathutils.js
More file actions
58 lines (54 loc) · 1.23 KB
/
utils.js
File metadata and controls
58 lines (54 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
module.exports = {
/**
* Check if next key is a array lookup
* @param keys
* @returns {boolean}
* @private
*/
_isNextArrayProperty: function (keys) {
var regArray = /(\[\]|\[(.*)\])$/g
;
return regArray.test(keys[0]);
},
/**
* Check if passed object is empty, checking for object and array types
* @param object
* @returns {boolean}
* @private
*/
_isEmpty: function (object) {
var empty = false;
if (typeof object === 'undefined' || object === null) {
empty = true;
} else if (this._isEmptyObject(object)) {
empty = true;
} else if (this._isEmptyArray(object)) {
empty = true;
}
return empty;
},
/**
* Check if passed object is empty
* @param object
* @returns {boolean}
* @private
*/
_isEmptyObject: function (object) {
return typeof object === 'object'
&& Array.isArray(object) === false
&& Object.keys(object).length === 0
;
},
/**
* Check if passed array is empty or with empty values only
* @param object
* @returns {boolean}
* @private
*/
_isEmptyArray: function(object) {
return Array.isArray(object)
&& (object.length === 0
|| object.join('').length === 0)
;
}
};