aboutsummaryrefslogtreecommitdiff
path: root/node_modules/algoliasearch/src/merge.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/algoliasearch/src/merge.js')
-rw-r--r--node_modules/algoliasearch/src/merge.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/node_modules/algoliasearch/src/merge.js b/node_modules/algoliasearch/src/merge.js
new file mode 100644
index 00000000..99a32d75
--- /dev/null
+++ b/node_modules/algoliasearch/src/merge.js
@@ -0,0 +1,19 @@
+var foreach = require('foreach');
+
+module.exports = function merge(destination/* , sources */) {
+ var sources = Array.prototype.slice.call(arguments);
+
+ foreach(sources, function(source) {
+ for (var keyName in source) {
+ if (source.hasOwnProperty(keyName)) {
+ if (typeof destination[keyName] === 'object' && typeof source[keyName] === 'object') {
+ destination[keyName] = merge({}, destination[keyName], source[keyName]);
+ } else if (source[keyName] !== undefined) {
+ destination[keyName] = source[keyName];
+ }
+ }
+ }
+ });
+
+ return destination;
+};