UNPKG

plait

Version:

A minimal JavaScript framework for building isomorphic reactive web components

22 lines (17 loc) 391 B
import is from 'ramda/src/is' export default function clone (obj) { const newObj = Array.isArray(obj) ? [] : {} for (const k in obj) { const val = obj[k] if (is(Object, val)) { if (val.hasOwnProperty('@@Plait/State')) { newObj[k] = val.clone() } else { newObj[k] = clone(val) } } else { newObj[k] = val } } return newObj }