ad48a17873a360b057bf897d93d2918aedf14716a8eaf7eddd292c8ab184b34d4f53b50495f787e2416d49fedbfda8b437cb33175fc1ee79c62d42bf5ae7c0-exec 566 B

12345678910111213141516171819202122232425
  1. function isPlainObject(value) {
  2. if (value == null || typeof value !== 'object') return false
  3. return Object.getPrototypeOf(value) === Object.prototype
  4. }
  5. function copy(obj, key, value) {
  6. if (isPlainObject(value)) {
  7. obj[key] || (obj[key] = {})
  8. deepExtend(obj[key], value)
  9. } else {
  10. obj[key] = value
  11. }
  12. }
  13. export function deepExtend(target, source) {
  14. if (isPlainObject(source)) {
  15. const keys = Object.keys(source)
  16. for (let i = 0, len = keys.length; i < len; i++) {
  17. copy(target, keys[i], source[keys[i]])
  18. }
  19. }
  20. return target
  21. }