This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community. Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it. https://www.freifunk-altdorf.de
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

53 lines
872 B

'use strict';
var isExtendable = require('is-extendable');
var forIn = require('for-in');
function mixinDeep(target, objects) {
var len = arguments.length, i = 0;
while (++i < len) {
var obj = arguments[i];
if (isObject(obj)) {
forIn(obj, copy, target);
}
}
return target;
}
/**
* Copy properties from the source object to the
* target object.
*
* @param {*} `val`
* @param {String} `key`
*/
function copy(val, key) {
if (key === '__proto__') {
return;
}
var obj = this[key];
if (isObject(val) && isObject(obj)) {
mixinDeep(obj, val);
} else {
this[key] = val;
}
}
/**
* Returns true if `val` is an object or function.
*
* @param {any} val
* @return {Boolean}
*/
function isObject(val) {
return isExtendable(val) && !Array.isArray(val);
}
/**
* Expose `mixinDeep`
*/
module.exports = mixinDeep;