Completed
Push — master ( 4df0ef...138b68 )
by Ajeh
28s
created

src/plugin/js/utilities.js   A

Complexity

Total Complexity 11
Complexity/F 2.2

Size

Lines of Code 38
Function Count 5

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 0
wmc 11
c 2
b 0
f 0
nc 1
mnd 3
bc 11
fnc 5
dl 0
loc 38
rs 10
bpm 2.2
cpm 2.2
noi 0

4 Functions

Rating   Name   Duplication   Size   Complexity  
A utilities.js ➔ cloneObj 0 3 1
A utilities.js ➔ clickNode 0 11 4
A utilities.js ➔ mergeObjs 0 7 2
A utilities.js ➔ firstIndex 0 12 3
1
// utilities
2
3
export const noop = () => {}
4
5
export const cloneObj = function (obj) {
6
    return Object.assign({}, obj)
7
}
8
9
export const mergeObjs = function () {
10
    let values = []
11
    for (let i = 0; i < arguments.length; i++){
12
        values.push(arguments[i])
13
    }
14
    return Object.assign(...(values.map(cloneObj)))
15
}
16
17
export const clickNode = function (node) {
18
    if (document.createEvent) {
19
        let evt = document.createEvent('MouseEvents');
20
        evt.initEvent('click', true, false);
21
        node.dispatchEvent(evt);
22
    } else if (document.createEventObject) {
23
        node.fireEvent('onclick');
24
    } else if (typeof node.onclick === 'function') {
25
        node.onclick();
26
    }
27
}
28
29
export const firstIndex = function (arr, search, prop) {
30
    let i
31
    let limit = arr.length
32
33
    for(i=0; i < limit; i++){
34
        if(arr[i][prop] === search){
35
            return i
36
        }
37
    }
38
39
    return -1
40
}