export const deepCopy = (dst, ori) => {
let keys = Object.keys(ori)
keys.forEach((key) => {
if (typeof ori[key] === 'object') {
if (Array.isArray(ori[key])) {
if (!Array.isArray(dst[key])) {
dst[key] = []
ori[key].forEach((el) => {
dst[key].push(deepCopy({}, el))
})
} else {
ori[key].forEach((el, index) => {
deepCopy(dst[key][index], el)
})
}
}
else if (ori[key] !== null) {
dst[key] = {}
deepCopy(dst[key], ori[key])
} else {
dst[key] = null
}
} else if (typeof ori[key] === 'function') {
// do nothing
} else {
if (typeof dst === 'undefined') {
console.info(dst, ori)
}
dst[key] = ori[key]
}
})
return dst
}