@@ -23,17 +23,23 @@ function encode(value: mixed, disallowObjects: boolean, forcePointers: boolean,
23
23
if ( disallowObjects ) {
24
24
throw new Error ( 'Parse Objects not allowed here' ) ;
25
25
}
26
+ var seenEntry = value . id ? value . className + ':' + value . id : value ;
26
27
if ( forcePointers ||
27
28
! seen ||
28
- seen . indexOf ( value ) > - 1 ||
29
+ seen . indexOf ( seenEntry ) > - 1 ||
29
30
value . dirty ( ) ||
30
31
Object . keys ( value . _getServerData ( ) ) . length < 1
31
32
) {
32
33
return value . toPointer ( ) ;
33
34
}
34
- seen = seen . concat ( value ) ;
35
- var json = value . _toFullJSON ( seen ) ;
36
- return encode ( json , disallowObjects , forcePointers , seen ) ;
35
+ seen = seen . concat ( seenEntry ) ;
36
+ var json = encode ( value . attributes , disallowObjects , forcePointers , seen ) ;
37
+ json . className = value . className ;
38
+ json . __type = 'Object' ;
39
+ if ( value . id ) {
40
+ json . objectId = value . id ;
41
+ }
42
+ return json ;
37
43
}
38
44
if ( value instanceof Op ||
39
45
value instanceof ParseACL ||
@@ -75,6 +81,6 @@ function encode(value: mixed, disallowObjects: boolean, forcePointers: boolean,
75
81
return value ;
76
82
}
77
83
78
- export default function ( value : mixed , disallowObjects ?: boolean , forcePointers ?: boolean ) {
79
- return encode ( value , ! ! disallowObjects , ! ! forcePointers , [ ] ) ;
84
+ export default function ( value : mixed , disallowObjects ?: boolean , forcePointers ?: boolean , seen ?: Array < mixed > ) {
85
+ return encode ( value , ! ! disallowObjects , ! ! forcePointers , seen || [ ] ) ;
80
86
}
0 commit comments