@@ -23,6 +23,21 @@ export default class SmartQuery extends SmartApollo {
2323 }
2424
2525 super ( vm , key , options , autostart )
26+
27+ this . hasDataField = this . vm . $data . hasOwnProperty ( key )
28+ if ( this . hasDataField ) {
29+ Object . defineProperty ( this . vm . $data . $apolloData . data , key , {
30+ get : ( ) => this . vm . $data [ key ] ,
31+ enumerable : true ,
32+ configurable : true ,
33+ } )
34+ } else {
35+ Object . defineProperty ( this . vm . $data , key , {
36+ get : ( ) => this . vm . $data . $apolloData . data [ key ] ,
37+ enumerable : true ,
38+ configurable : true ,
39+ } )
40+ }
2641 }
2742
2843 get client ( ) {
@@ -105,11 +120,11 @@ export default class SmartQuery extends SmartApollo {
105120 // No result
106121 } else if ( ! this . options . manual ) {
107122 if ( typeof this . options . update === 'function' ) {
108- this . vm . $set ( this . vm . $data . $apolloData . data , this . key , this . options . update . call ( this . vm , data ) )
123+ this . setData ( this . options . update . call ( this . vm , data ) )
109124 } else if ( data [ this . key ] === undefined ) {
110125 console . error ( `Missing ${ this . key } attribute on result` , data )
111126 } else {
112- this . vm . $set ( this . vm . $data . $apolloData . data , this . key , data [ this . key ] )
127+ this . setData ( data [ this . key ] )
113128 }
114129 } else if ( ! hasResultCallback ) {
115130 console . error ( `${ this . key } query must have a 'result' hook in manual mode` )
@@ -120,6 +135,10 @@ export default class SmartQuery extends SmartApollo {
120135 }
121136 }
122137
138+ setData ( value ) {
139+ this . vm . $set ( this . hasDataField ? this . vm . $data : this . vm . $data . $apolloData . data , this . key , value )
140+ }
141+
123142 catchError ( error ) {
124143 super . catchError ( error )
125144 this . loadingDone ( )
0 commit comments