generator-enyo
Version:
Enyo bootplate Yeoman generator
28 lines (25 loc) • 640 B
JavaScript
/*
* mixin.js
*
* Basic streamline mixin functionality
*/
function mixin(dest, source) {
var keys = Object.keys(source);
for(var i=0; i<keys.length; i++) {
var key = keys[i];
if(Array.isArray(source[key]) ) {
dest[key] = dest[key] || [];
dest[key] = dest[keys[i]].concat(source[key]);
} else if (typeof source[key]==="object" ) {
dest[key] = dest[key] || {};
dest[key] = mixin(dest[key], source[key]);
} else {
dest[keys[i]] = source[keys[i]];
}
}
return dest;
};
module.exports = function(source1, source2) {
var dest = mixin({}, source1);
return mixin(dest, source2);
};