mirror of
https://github.com/morhetz/gruvbox.git
synced 2025-11-16 23:33:38 -05:00
chore(package): re-init package with commitizen and standard-release
This commit is contained in:
175
node_modules/merge/merge.js
generated
vendored
Normal file
175
node_modules/merge/merge.js
generated
vendored
Normal file
@@ -0,0 +1,175 @@
|
||||
/*!
|
||||
* @name JavaScript/NodeJS Merge v1.2.0
|
||||
* @author yeikos
|
||||
* @repository https://github.com/yeikos/js.merge
|
||||
|
||||
* Copyright 2014 yeikos - MIT license
|
||||
* https://raw.github.com/yeikos/js.merge/master/LICENSE
|
||||
*/
|
||||
|
||||
;(function(isNode) {
|
||||
|
||||
/**
|
||||
* Merge one or more objects
|
||||
* @param bool? clone
|
||||
* @param mixed,... arguments
|
||||
* @return object
|
||||
*/
|
||||
|
||||
var Public = function(clone) {
|
||||
|
||||
return merge(clone === true, false, arguments);
|
||||
|
||||
}, publicName = 'merge';
|
||||
|
||||
/**
|
||||
* Merge two or more objects recursively
|
||||
* @param bool? clone
|
||||
* @param mixed,... arguments
|
||||
* @return object
|
||||
*/
|
||||
|
||||
Public.recursive = function(clone) {
|
||||
|
||||
return merge(clone === true, true, arguments);
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Clone the input removing any reference
|
||||
* @param mixed input
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
Public.clone = function(input) {
|
||||
|
||||
var output = input,
|
||||
type = typeOf(input),
|
||||
index, size;
|
||||
|
||||
if (type === 'array') {
|
||||
|
||||
output = [];
|
||||
size = input.length;
|
||||
|
||||
for (index=0;index<size;++index)
|
||||
|
||||
output[index] = Public.clone(input[index]);
|
||||
|
||||
} else if (type === 'object') {
|
||||
|
||||
output = {};
|
||||
|
||||
for (index in input)
|
||||
|
||||
output[index] = Public.clone(input[index]);
|
||||
|
||||
}
|
||||
|
||||
return output;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Merge two objects recursively
|
||||
* @param mixed input
|
||||
* @param mixed extend
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
function merge_recursive(base, extend) {
|
||||
|
||||
if (typeOf(base) !== 'object')
|
||||
|
||||
return extend;
|
||||
|
||||
for (var key in extend) {
|
||||
|
||||
if (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {
|
||||
|
||||
base[key] = merge_recursive(base[key], extend[key]);
|
||||
|
||||
} else {
|
||||
|
||||
base[key] = extend[key];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return base;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge two or more objects
|
||||
* @param bool clone
|
||||
* @param bool recursive
|
||||
* @param array argv
|
||||
* @return object
|
||||
*/
|
||||
|
||||
function merge(clone, recursive, argv) {
|
||||
|
||||
var result = argv[0],
|
||||
size = argv.length;
|
||||
|
||||
if (clone || typeOf(result) !== 'object')
|
||||
|
||||
result = {};
|
||||
|
||||
for (var index=0;index<size;++index) {
|
||||
|
||||
var item = argv[index],
|
||||
|
||||
type = typeOf(item);
|
||||
|
||||
if (type !== 'object') continue;
|
||||
|
||||
for (var key in item) {
|
||||
|
||||
var sitem = clone ? Public.clone(item[key]) : item[key];
|
||||
|
||||
if (recursive) {
|
||||
|
||||
result[key] = merge_recursive(result[key], sitem);
|
||||
|
||||
} else {
|
||||
|
||||
result[key] = sitem;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get type of variable
|
||||
* @param mixed input
|
||||
* @return string
|
||||
*
|
||||
* @see http://jsperf.com/typeofvar
|
||||
*/
|
||||
|
||||
function typeOf(input) {
|
||||
|
||||
return ({}).toString.call(input).slice(8, -1).toLowerCase();
|
||||
|
||||
}
|
||||
|
||||
if (isNode) {
|
||||
|
||||
module.exports = Public;
|
||||
|
||||
} else {
|
||||
|
||||
window[publicName] = Public;
|
||||
|
||||
}
|
||||
|
||||
})(typeof module === 'object' && module && typeof module.exports === 'object' && module.exports);
|
||||
Reference in New Issue
Block a user