aboutsummaryrefslogtreecommitdiff
path: root/node_modules/relateurl/lib/util/object.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/relateurl/lib/util/object.js
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
node_modules
Diffstat (limited to 'node_modules/relateurl/lib/util/object.js')
-rw-r--r--node_modules/relateurl/lib/util/object.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/node_modules/relateurl/lib/util/object.js b/node_modules/relateurl/lib/util/object.js
new file mode 100644
index 000000000..8eab7940e
--- /dev/null
+++ b/node_modules/relateurl/lib/util/object.js
@@ -0,0 +1,64 @@
+"use strict";
+
+/*
+ Deep-clone an object.
+*/
+function clone(obj)
+{
+ if (obj instanceof Object)
+ {
+ var clonedObj = (obj instanceof Array) ? [] : {};
+
+ for (var i in obj)
+ {
+ if ( obj.hasOwnProperty(i) )
+ {
+ clonedObj[i] = clone( obj[i] );
+ }
+ }
+
+ return clonedObj;
+ }
+
+ return obj;
+}
+
+
+
+/*
+ https://github.com/jonschlinkert/is-plain-object
+*/
+function isPlainObject(obj)
+{
+ return !!obj && typeof obj==="object" && obj.constructor===Object;
+}
+
+
+
+/*
+ Shallow-merge two objects.
+*/
+function shallowMerge(target, source)
+{
+ if (target instanceof Object && source instanceof Object)
+ {
+ for (var i in source)
+ {
+ if ( source.hasOwnProperty(i) )
+ {
+ target[i] = source[i];
+ }
+ }
+ }
+
+ return target;
+}
+
+
+
+module.exports =
+{
+ clone: clone,
+ isPlainObject: isPlainObject,
+ shallowMerge: shallowMerge
+};