Skip to content

Commit 0f8bdc1

Browse files
authored
Use getOwnPropertyDescriptor to find getters
1 parent f64c366 commit 0f8bdc1

File tree

1 file changed

+10
-4
lines changed
  • packages/node_modules/overmind/src

1 file changed

+10
-4
lines changed

packages/node_modules/overmind/src/utils.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,16 @@ export const makeStringifySafeMutations = (mutations: IMutation[]) => {
3030
export function deepCopy(obj) {
3131
if (isPlainObject(obj)) {
3232
return Object.keys(obj).reduce((aggr: any, key) => {
33-
if(obj.__lookupGetter__(key))
34-
aggr.__defineGetter__(key, obj.__lookupGetter__(key))
35-
else
36-
aggr[key] = deepCopy(obj[key])
33+
const originalDescriptor = Object.getOwnPropertyDescriptor(obj, key)
34+
const isAGetter = originalDescriptor && 'get' in originalDescriptor
35+
const value = obj[key]
36+
37+
if (isPlainObject(value) && !isAGetter) {
38+
aggr[key] = deepCopy(value)
39+
} else {
40+
Object.defineProperty(aggr, key, originalDescriptor as any)
41+
}
42+
3743
return aggr
3844
}, {})
3945
} else if (Array.isArray(obj)) {

0 commit comments

Comments
 (0)