assign = (target, source) => {
  if (!target || !source) { return target || source; }
  for (let [key, value] of Object.entries(source)) {
    if (value !== null && value !== undefined) {
      target[key] = value;
    }
  }
  return target;
}
Like Object.assign(), but ignores `null` and `undefined` from `source`.

@param {Object} target
@param {Object} source
@returns {Object}