FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
netdata/node.d/node_modules/extend.js at master · nemo1105/netdata · GitHub
nemo1105
/
netdata
Public
forked from
netdata/netdata
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
netdata
/
node.d
/
node_modules
/
extend.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
87 lines (72 loc) · 2.27 KB
Breadcrumbs
netdata
/
node.d
/
node_modules
/
extend.js
Copy path
File metadata and controls
87 lines (72 loc) · 2.27 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// https://github.com/justmoon/node-extend
'use strict'
;
var
hasOwn
=
Object
.
prototype
.
hasOwnProperty
;
var
toStr
=
Object
.
prototype
.
toString
;
var
isArray
=
function
isArray
(
arr
)
{
if
(
typeof
Array
.
isArray
===
'function'
)
{
return
Array
.
isArray
(
arr
)
;
}
return
toStr
.
call
(
arr
)
===
'[object Array]'
;
}
;
var
isPlainObject
=
function
isPlainObject
(
obj
)
{
if
(
!
obj
||
toStr
.
call
(
obj
)
!==
'[object Object]'
)
{
return
false
;
}
var
hasOwnConstructor
=
hasOwn
.
call
(
obj
,
'constructor'
)
;
var
hasIsPrototypeOf
=
obj
.
constructor
&&
obj
.
constructor
.
prototype
&&
hasOwn
.
call
(
obj
.
constructor
.
prototype
,
'isPrototypeOf'
)
;
// Not own constructor property must be Object
if
(
obj
.
constructor
&&
!
hasOwnConstructor
&&
!
hasIsPrototypeOf
)
{
return
false
;
}
// Own properties are enumerated firstly, so to speed up,
// if last one is own, then all properties are own.
var
key
;
for
(
key
in
obj
)
{
/**/
}
return
typeof
key
===
'undefined'
||
hasOwn
.
call
(
obj
,
key
)
;
}
;
module
.
exports
=
function
extend
(
)
{
var
options
,
name
,
src
,
copy
,
copyIsArray
,
clone
;
var
target
=
arguments
[
0
]
;
var
i
=
1
;
var
length
=
arguments
.
length
;
var
deep
=
false
;
// Handle a deep copy situation
if
(
typeof
target
===
'boolean'
)
{
deep
=
target
;
target
=
arguments
[
1
]
||
{
}
;
// skip the boolean and the target
i
=
2
;
}
else
if
(
(
typeof
target
!==
'object'
&&
typeof
target
!==
'function'
)
||
target
==
null
)
{
target
=
{
}
;
}
for
(
;
i
<
length
;
++
i
)
{
options
=
arguments
[
i
]
;
// Only deal with non-null/undefined values
if
(
options
!=
null
)
{
// Extend the base object
for
(
name
in
options
)
{
src
=
target
[
name
]
;
copy
=
options
[
name
]
;
// Prevent never-ending loop
if
(
target
!==
copy
)
{
// Recurse if we're merging plain objects or arrays
if
(
deep
&&
copy
&&
(
isPlainObject
(
copy
)
||
(
copyIsArray
=
isArray
(
copy
)
)
)
)
{
if
(
copyIsArray
)
{
copyIsArray
=
false
;
clone
=
src
&&
isArray
(
src
)
?
src
:
[
]
;
}
else
{
clone
=
src
&&
isPlainObject
(
src
)
?
src
:
{
}
;
}
// Never move original objects, clone them
target
[
name
]
=
extend
(
deep
,
clone
,
copy
)
;
// Don't bring in undefined values
}
else
if
(
typeof
copy
!==
'undefined'
)
{
target
[
name
]
=
copy
;
}
}
}
}
}
// Return the modified object
return
target
;
}
;
Back
|
FazBrowse Home
|
New Git URL