@@ -117,13 +117,6 @@ function systemAsyncHandler(handler: (req: Request & { context: ExtendedRequestC
117117 } ;
118118}
119119
120- function cleanupResult ( result ) {
121- return {
122- ...result ,
123- rawData : undefined ,
124- } ;
125- }
126-
127120// Prepared CheckAuthFn, default or from config: always async, returns nothing
128121type PreparedCheckAuthFn = ( ctx : any , authorization ?: string ) => Promise < void > ;
129122
@@ -1601,7 +1594,7 @@ class ApiGateway {
16011594 * result object.
16021595 * @internal
16031596 */
1604- private async prepareResultTransformData (
1597+ private prepareResultTransformData (
16051598 context : RequestContext ,
16061599 queryType : QueryType ,
16071600 normalizedQuery : NormalizedQuery ,
@@ -1622,7 +1615,9 @@ class ApiGateway {
16221615 } ,
16231616 response : any ,
16241617 responseType ?: ResultType ,
1625- ) {
1618+ ) : ResultWrapper {
1619+ const resultWrapper = response . data ;
1620+
16261621 const transformDataParams = {
16271622 aliasToMemberNameMap : sqlQuery . aliasNameToMember ,
16281623 annotation : {
@@ -1635,12 +1630,8 @@ class ApiGateway {
16351630 resType : responseType ,
16361631 } ;
16371632
1638- response . data . setTransformData ( transformDataParams ) ;
1639-
1640- // We postpone data transformation until the last minute
1641- return {
1633+ const resObj = {
16421634 query : normalizedQuery ,
1643- rawData : response . data ,
16441635 lastRefreshTime : response . lastRefreshTime ?. toISOString ( ) ,
16451636 ...(
16461637 getEnv ( 'devMode' ) ||
@@ -1661,6 +1652,11 @@ class ApiGateway {
16611652 slowQuery : Boolean ( response . slowQuery ) ,
16621653 total : normalizedQuery . total ? response . total : null ,
16631654 } ;
1655+
1656+ resultWrapper . setTransformData ( transformDataParams ) ;
1657+ resultWrapper . setRootResultObject ( resObj ) ;
1658+
1659+ return resultWrapper ;
16641660 }
16651661
16661662 /**
@@ -1805,15 +1801,13 @@ class ApiGateway {
18051801 queries : results . length ,
18061802 queriesWithPreAggregations :
18071803 results . filter (
1808- ( r : any ) => Object . keys (
1809- r . usedPreAggregations || { }
1810- ) . length
1804+ ( r : any ) => Object . keys ( r . getRootResultObject ( ) . usedPreAggregations ) . length
18111805 ) . length ,
18121806 // Have to omit because data could be processed natively
18131807 // so it is not known at this point
18141808 // queriesWithData:
18151809 // results.filter((r: any) => r.data?.length).length,
1816- dbType : results . map ( r => r . dbType ) ,
1810+ dbType : results . map ( r => r . getRootResultObject ( ) . dbType ) ,
18171811 } ,
18181812 context ,
18191813 ) ;
@@ -1822,9 +1816,9 @@ class ApiGateway {
18221816 // We prepare the final json result on native side
18231817 const [ transformDataJson , rawDataRef , cleanResultList ] = results . reduce < [ Object [ ] , any [ ] , Object [ ] ] > (
18241818 ( [ transformList , rawList , resultList ] , r ) => {
1825- transformList . push ( r . rawData . getTransformData ( ) ) ;
1826- rawList . push ( r . rawData . getRawData ( ) ) ;
1827- resultList . push ( cleanupResult ( r ) ) ;
1819+ transformList . push ( r . getTransformData ( ) ) ;
1820+ rawList . push ( r . getRawData ( ) ) ;
1821+ resultList . push ( r . getRootResultObject ( ) ) ;
18281822 return [ transformList , rawList , resultList ] ;
18291823 } ,
18301824 [ [ ] , [ ] , [ ] ]
@@ -1841,7 +1835,7 @@ class ApiGateway {
18411835 // We prepare the full final json result on native side
18421836 const r = results [ 0 ] ;
18431837 res ( await getFinalQueryResult (
1844- r . rawData . getTransformData ( ) , r . rawData . getRawData ( ) , cleanupResult ( r )
1838+ r . getTransformData ( ) , r . getRawData ( ) , r . getRootResultObject ( )
18451839 ) ) ;
18461840 }
18471841 } catch ( e : any ) {
@@ -1976,13 +1970,11 @@ class ApiGateway {
19761970 res ( results [ 0 ] ) ;
19771971 } else {
19781972 // We prepare the final json result on native side
1979- const [ transformDataJson , rawData , resultDataJson ] = ( results as {
1980- rawData : { getTransformData : ( ) => any , getRawData : ( ) => any } ;
1981- } [ ] ) . reduce < [ Object [ ] , any [ ] , Object [ ] ] > (
1973+ const [ transformDataJson , rawData , resultDataJson ] = ( results as ResultWrapper [ ] ) . reduce < [ Object [ ] , any [ ] , Object [ ] ] > (
19821974 ( [ transformList , rawList , resultList ] , r ) => {
1983- transformList . push ( r . rawData . getTransformData ( ) ) ;
1984- rawList . push ( r . rawData . getRawData ( ) ) ;
1985- resultList . push ( cleanupResult ( r ) ) ;
1975+ transformList . push ( r . getTransformData ( ) ) ;
1976+ rawList . push ( r . getRawData ( ) ) ;
1977+ resultList . push ( r . getRootResultObject ( ) ) ;
19861978 return [ transformList , rawList , resultList ] ;
19871979 } ,
19881980 [ [ ] , [ ] , [ ] ]
0 commit comments