@cubejs-backend/api-gateway 1.1.15 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/src/SubscriptionServer.d.ts +2 -2
  2. package/dist/src/SubscriptionServer.d.ts.map +1 -1
  3. package/dist/src/SubscriptionServer.js +1 -1
  4. package/dist/src/SubscriptionServer.js.map +1 -1
  5. package/dist/src/gateway.d.ts +11 -4
  6. package/dist/src/gateway.d.ts.map +1 -1
  7. package/dist/src/gateway.js +93 -38
  8. package/dist/src/gateway.js.map +1 -1
  9. package/dist/src/helpers/prepareAnnotation.d.ts +1 -1
  10. package/dist/src/helpers/prepareAnnotation.d.ts.map +1 -1
  11. package/dist/src/helpers/prepareAnnotation.js.map +1 -1
  12. package/dist/src/helpers/toConfigMap.d.ts +1 -1
  13. package/dist/src/helpers/toConfigMap.js +1 -1
  14. package/dist/src/index.d.ts +1 -0
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/interfaces.d.ts +4 -2
  17. package/dist/src/interfaces.d.ts.map +1 -1
  18. package/dist/src/interfaces.js +2 -1
  19. package/dist/src/interfaces.js.map +1 -1
  20. package/dist/src/query.d.ts.map +1 -1
  21. package/dist/src/query.js +10 -1
  22. package/dist/src/query.js.map +1 -1
  23. package/dist/src/types/query.d.ts +7 -0
  24. package/dist/src/types/query.d.ts.map +1 -1
  25. package/dist/src/types/request.d.ts +2 -1
  26. package/dist/src/types/request.d.ts.map +1 -1
  27. package/dist/src/types/responses.d.ts +34 -0
  28. package/dist/src/types/responses.d.ts.map +1 -0
  29. package/dist/src/types/responses.js +3 -0
  30. package/dist/src/types/responses.js.map +1 -0
  31. package/package.json +5 -5
  32. package/dist/src/helpers/transformData.d.ts +0 -87
  33. package/dist/src/helpers/transformData.d.ts.map +0 -1
  34. package/dist/src/helpers/transformData.js +0 -236
  35. package/dist/src/helpers/transformData.js.map +0 -1
  36. package/dist/src/helpers/transformValue.d.ts +0 -21
  37. package/dist/src/helpers/transformValue.d.ts.map +0 -1
  38. package/dist/src/helpers/transformValue.js +0 -29
  39. package/dist/src/helpers/transformValue.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import type { ApiGateway } from './gateway';
2
2
  import type { LocalSubscriptionStore } from './LocalSubscriptionStore';
3
3
  import { ContextAcceptorFn } from './interfaces';
4
- export type WebSocketSendMessageFn = (connectionId: string, message: any) => void;
4
+ export type WebSocketSendMessageFn = (connectionId: string, message: any) => Promise<void>;
5
5
  export declare class SubscriptionServer {
6
6
  protected readonly apiGateway: ApiGateway;
7
7
  protected readonly sendMessage: WebSocketSendMessageFn;
@@ -10,7 +10,7 @@ export declare class SubscriptionServer {
10
10
  constructor(apiGateway: ApiGateway, sendMessage: WebSocketSendMessageFn, subscriptionStore: LocalSubscriptionStore, contextAcceptor: ContextAcceptorFn);
11
11
  resultFn(connectionId: string, messageId: string, requestId: string | undefined): (message: any, { status }?: {
12
12
  status: number;
13
- }) => void;
13
+ }) => Promise<void>;
14
14
  processMessage(connectionId: string, message: any, isSubscription: any): Promise<void>;
15
15
  processSubscriptions(): Promise<void>;
16
16
  disconnect(connectionId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionServer.d.ts","sourceRoot":"","sources":["../../src/SubscriptionServer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAgBzE,MAAM,MAAM,sBAAsB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;AAElF,qBAAa,kBAAkB;IAE3B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB;IACtD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB;IAC5D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB;gBAHlC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,sBAAsB,EACnC,iBAAiB,EAAE,sBAAsB,EACzC,eAAe,EAAE,iBAAiB;IAIhD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;;;IAWzE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,KAAA,EAAE,cAAc,KAAA;IAoG5D,oBAAoB;IAOpB,UAAU,CAAC,YAAY,EAAE,MAAM;IAMrC,KAAK;CAGb"}
1
+ {"version":3,"file":"SubscriptionServer.d.ts","sourceRoot":"","sources":["../../src/SubscriptionServer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAgBzE,MAAM,MAAM,sBAAsB,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3F,qBAAa,kBAAkB;IAE3B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB;IACtD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB;IAC5D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,iBAAiB;gBAHlC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,sBAAsB,EACnC,iBAAiB,EAAE,sBAAsB,EACzC,eAAe,EAAE,iBAAiB;IAIhD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;;;IAWzE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,KAAA,EAAE,cAAc,KAAA;IAoG5D,oBAAoB;IAOpB,UAAU,CAAC,YAAY,EAAE,MAAM;IAMrC,KAAK;CAGb"}
@@ -25,7 +25,7 @@ class SubscriptionServer {
25
25
  this.contextAcceptor = contextAcceptor;
26
26
  }
27
27
  resultFn(connectionId, messageId, requestId) {
28
- return (message, { status } = { status: 200 }) => {
28
+ return async (message, { status } = { status: 200 }) => {
29
29
  this.apiGateway.log({
30
30
  type: 'Outgoing network usage',
31
31
  service: 'api-ws',
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionServer.js","sourceRoot":"","sources":["../../src/SubscriptionServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubscriptionServer.js","sourceRoot":"","sources":["../../src/SubscriptionServer.ts"],"names":[],"mappings":"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"}
@@ -157,7 +157,7 @@ declare class ApiGateway {
157
157
  * Convert incoming query parameter (JSON fetched from the HTTP) to
158
158
  * an array of query type and array of normalized queries.
159
159
  */
160
- protected getNormalizedQueries(inputQuery: Record<string, any> | Record<string, any>[], context: RequestContext, persistent?: boolean, memberExpressions?: boolean): Promise<[QueryType, NormalizedQuery[]]>;
160
+ protected getNormalizedQueries(inputQuery: Record<string, any> | Record<string, any>[], context: RequestContext, persistent?: boolean, memberExpressions?: boolean): Promise<[QueryType, NormalizedQuery[], NormalizedQuery[]]>;
161
161
  sql({ query, context, res, memberToAlias, exportAnnotatedSql, memberExpressions, expressionParams, disableExternalPreAggregations, disableLimitEnforcing, }: QueryRequest): Promise<void>;
162
162
  private hasExpressionsInQuery;
163
163
  private parseMemberExpressionsInQuery;
@@ -183,11 +183,18 @@ declare class ApiGateway {
183
183
  */
184
184
  private getSqlResponseInternal;
185
185
  /**
186
- * Convert adapter's result and other request paramters to a final
186
+ * Wraps the adapter's response in unified ResultWrapper if it comes from
187
+ * a common driver (not a Cubestore's one, cause Cubestore Driver internally creates ResultWrapper)
188
+ * @param res Adapter's response
189
+ * @private
190
+ */
191
+ private wrapAdapterQueryResultIfNeeded;
192
+ /**
193
+ * Prepare adapter's result and other transform parameters for a final
187
194
  * result object.
188
195
  * @internal
189
196
  */
190
- private getResultInternal;
197
+ private prepareResultTransformData;
191
198
  /**
192
199
  * Returns stream object which will be used to stream results from
193
200
  * the data source if applicable, returns `null` otherwise.
@@ -226,7 +233,7 @@ declare class ApiGateway {
226
233
  }): Promise<void>;
227
234
  protected resToResultFn(res: ExpressResponse): (message: any, { status }?: {
228
235
  status?: number | undefined;
229
- }) => ExpressResponse<any, Record<string, any>>;
236
+ }) => Promise<void>;
230
237
  protected parseQueryParam(query: any): Query | Query[];
231
238
  protected getCompilerApi(context: RequestContext): Promise<any>;
232
239
  protected getAdapterApi(context: RequestContext): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ const body_parser_1 = __importDefault(require("body-parser"));
10
10
  const express_graphql_1 = require("express-graphql");
11
11
  const structured_clone_1 = __importDefault(require("@ungap/structured-clone"));
12
12
  const shared_1 = require("@cubejs-backend/shared");
13
+ const native_1 = require("@cubejs-backend/native");
13
14
  const http_proxy_middleware_1 = require("http-proxy-middleware");
14
15
  const enums_1 = require("./types/enums");
15
16
  const requestParser_1 = require("./requestParser");
@@ -23,7 +24,6 @@ const jwk_1 = require("./jwk");
23
24
  const sql_server_1 = require("./sql-server");
24
25
  const graphql_1 = require("./graphql");
25
26
  const prepareAnnotation_1 = require("./helpers/prepareAnnotation");
26
- const transformData_1 = __importDefault(require("./helpers/transformData"));
27
27
  const transformMetaExtended_1 = require("./helpers/transformMetaExtended");
28
28
  function userAsyncHandler(handler) {
29
29
  return (req, res, next) => {
@@ -849,7 +849,7 @@ class ApiGateway {
849
849
  }, context);
850
850
  const startTime = new Date().getTime();
851
851
  const compilerApi = await this.getCompilerApi(context);
852
- let normalizedQueries = await Promise.all(queries.map(async (currentQuery) => {
852
+ const queryNormalizationResult = queries.map((currentQuery) => {
853
853
  const hasExpressionsInQuery = this.hasExpressionsInQuery(currentQuery);
854
854
  if (hasExpressionsInQuery) {
855
855
  if (!memberExpressions) {
@@ -857,13 +857,17 @@ class ApiGateway {
857
857
  }
858
858
  currentQuery = this.parseMemberExpressionsInQuery(currentQuery);
859
859
  }
860
- const normalizedQuery = (0, query_1.normalizeQuery)(currentQuery, persistent);
860
+ return {
861
+ normalizedQuery: ((0, query_1.normalizeQuery)(currentQuery, persistent)),
862
+ hasExpressionsInQuery
863
+ };
864
+ });
865
+ let normalizedQueries = await Promise.all(queryNormalizationResult.map(async ({ normalizedQuery, hasExpressionsInQuery }) => {
861
866
  let evaluatedQuery = normalizedQuery;
862
867
  if (hasExpressionsInQuery) {
863
868
  // We need to parse/eval all member expressions early as applyRowLevelSecurity
864
869
  // needs to access the full SQL query in order to evaluate rules
865
- evaluatedQuery =
866
- this.evalMemberExpressionsInQuery(normalizedQuery);
870
+ evaluatedQuery = this.evalMemberExpressionsInQuery(normalizedQuery);
867
871
  }
868
872
  // First apply cube/view level security policies
869
873
  const { query: queryWithRlsFilters, denied } = await compilerApi.applyRowLevelSecurity(normalizedQuery, evaluatedQuery, context);
@@ -897,7 +901,7 @@ class ApiGateway {
897
901
  throw new UserError_1.UserError('Data blending query without granularity is not supported');
898
902
  }
899
903
  }
900
- return [queryType, normalizedQueries];
904
+ return [queryType, normalizedQueries, queryNormalizationResult.map((it) => (0, query_1.remapToQueryAdapterFormat)(it.normalizedQuery))];
901
905
  }
902
906
  async sql({ query, context, res, memberToAlias, exportAnnotatedSql, memberExpressions, expressionParams, disableExternalPreAggregations, disableLimitEnforcing, }) {
903
907
  const requestStarted = new Date();
@@ -923,7 +927,12 @@ class ApiGateway {
923
927
  }
924
928
  }
925
929
  hasExpressionsInQuery(query) {
926
- const arraysToCheck = [query.measures, query.dimensions, query.segments];
930
+ const arraysToCheck = [
931
+ query.measures,
932
+ query.dimensions,
933
+ query.segments,
934
+ (query.subqueryJoins ?? []).map(join => join.on),
935
+ ];
927
936
  return arraysToCheck.some(array => array?.some(item => typeof item === 'string' && item.startsWith('{')));
928
937
  }
929
938
  parseMemberExpressionsInQuery(query) {
@@ -932,6 +941,10 @@ class ApiGateway {
932
941
  measures: (query.measures || []).map(m => (typeof m === 'string' ? this.parseMemberExpression(m) : m)),
933
942
  dimensions: (query.dimensions || []).map(m => (typeof m === 'string' ? this.parseMemberExpression(m) : m)),
934
943
  segments: (query.segments || []).map(m => (typeof m === 'string' ? this.parseMemberExpression(m) : m)),
944
+ subqueryJoins: (query.subqueryJoins ?? []).map(join => (typeof join.on === 'string' ? {
945
+ ...join,
946
+ on: this.parseMemberExpression(join.on),
947
+ } : join)),
935
948
  };
936
949
  }
937
950
  parseMemberExpression(memberExpression) {
@@ -968,6 +981,10 @@ class ApiGateway {
968
981
  measures: (query.measures || []).map(m => (typeof m !== 'string' ? this.evalMemberExpression(m) : m)),
969
982
  dimensions: (query.dimensions || []).map(m => (typeof m !== 'string' ? this.evalMemberExpression(m) : m)),
970
983
  segments: (query.segments || []).map(m => (typeof m !== 'string' ? this.evalMemberExpression(m) : m)),
984
+ subqueryJoins: (query.subqueryJoins ?? []).map(join => (typeof join.on !== 'string' ? {
985
+ ...join,
986
+ on: this.evalMemberExpression(join.on)
987
+ } : join)),
971
988
  };
972
989
  }
973
990
  evalMemberExpression(memberExpression) {
@@ -1047,7 +1064,7 @@ class ApiGateway {
1047
1064
  const requestStarted = new Date();
1048
1065
  try {
1049
1066
  await this.assertApiScope('data', context.securityContext);
1050
- const [queryType, normalizedQueries] = await this.getNormalizedQueries(query, context);
1067
+ const [queryType, _, normalizedQueries] = await this.getNormalizedQueries(query, context, undefined, undefined);
1051
1068
  const sqlQueries = await Promise.all(normalizedQueries.map(async (normalizedQuery) => (await this.getCompilerApi(context)).getSql(this.coerceForSqlQuery(normalizedQuery, context), {
1052
1069
  includeDebugInfo: (0, shared_1.getEnv)('devMode') || context.signedWithPlaygroundAuthSecret
1053
1070
  })));
@@ -1126,21 +1143,38 @@ class ApiGateway {
1126
1143
  response.total = normalizedQuery.total
1127
1144
  ? Number(total.data[0][shared_1.QueryAlias.TOTAL_COUNT])
1128
1145
  : undefined;
1129
- return response;
1146
+ return this.wrapAdapterQueryResultIfNeeded(response);
1130
1147
  }
1131
1148
  /**
1132
- * Convert adapter's result and other request paramters to a final
1149
+ * Wraps the adapter's response in unified ResultWrapper if it comes from
1150
+ * a common driver (not a Cubestore's one, cause Cubestore Driver internally creates ResultWrapper)
1151
+ * @param res Adapter's response
1152
+ * @private
1153
+ */
1154
+ wrapAdapterQueryResultIfNeeded(res) {
1155
+ res.data = new native_1.ResultWrapper(res.data);
1156
+ return res;
1157
+ }
1158
+ /**
1159
+ * Prepare adapter's result and other transform parameters for a final
1133
1160
  * result object.
1134
1161
  * @internal
1135
1162
  */
1136
- getResultInternal(context, queryType, normalizedQuery, sqlQuery, annotation, response, responseType) {
1137
- return {
1138
- query: normalizedQuery,
1139
- data: (0, transformData_1.default)(sqlQuery.aliasNameToMember, {
1163
+ prepareResultTransformData(context, queryType, normalizedQuery, sqlQuery, annotation, response, responseType) {
1164
+ const resultWrapper = response.data;
1165
+ const transformDataParams = {
1166
+ aliasToMemberNameMap: sqlQuery.aliasNameToMember,
1167
+ annotation: {
1140
1168
  ...annotation.measures,
1141
1169
  ...annotation.dimensions,
1142
1170
  ...annotation.timeDimensions
1143
- }, response.data, normalizedQuery, queryType, responseType),
1171
+ },
1172
+ query: normalizedQuery,
1173
+ queryType,
1174
+ resType: responseType,
1175
+ };
1176
+ const resObj = {
1177
+ query: normalizedQuery,
1144
1178
  lastRefreshTime: response.lastRefreshTime?.toISOString(),
1145
1179
  ...((0, shared_1.getEnv)('devMode') ||
1146
1180
  context.signedWithPlaygroundAuthSecret
@@ -1159,6 +1193,9 @@ class ApiGateway {
1159
1193
  slowQuery: Boolean(response.slowQuery),
1160
1194
  total: normalizedQuery.total ? response.total : null,
1161
1195
  };
1196
+ resultWrapper.setTransformData(transformDataParams);
1197
+ resultWrapper.setRootResultObject(resObj);
1198
+ return resultWrapper;
1162
1199
  }
1163
1200
  /**
1164
1201
  * Returns stream object which will be used to stream results from
@@ -1224,6 +1261,11 @@ class ApiGateway {
1224
1261
  query
1225
1262
  }, context);
1226
1263
  const [queryType, normalizedQueries] = await this.getNormalizedQueries(query, context);
1264
+ if (queryType !== enums_1.QueryType.REGULAR_QUERY &&
1265
+ props.queryType == null) {
1266
+ throw new UserError_1.UserError(`'${queryType}' query type is not supported by the client.` +
1267
+ 'Please update the client.');
1268
+ }
1227
1269
  let metaConfigResult = await (await this
1228
1270
  .getCompilerApi(context)).metaConfig(request.context, {
1229
1271
  requestId: context.requestId
@@ -1234,9 +1276,9 @@ class ApiGateway {
1234
1276
  const results = await Promise.all(normalizedQueries.map(async (normalizedQuery, index) => {
1235
1277
  slowQuery = slowQuery ||
1236
1278
  Boolean(sqlQueries[index].slowQuery);
1237
- const annotation = (0, prepareAnnotation_1.prepareAnnotation)(metaConfigResult, normalizedQuery);
1238
1279
  const response = await this.getSqlResponseInternal(context, normalizedQuery, sqlQueries[index]);
1239
- return this.getResultInternal(context, queryType, normalizedQuery, sqlQueries[index], annotation, response, resType);
1280
+ const annotation = (0, prepareAnnotation_1.prepareAnnotation)(metaConfigResult, normalizedQuery);
1281
+ return this.prepareResultTransformData(context, queryType, normalizedQuery, sqlQueries[index], annotation, response, resType);
1240
1282
  }));
1241
1283
  this.log({
1242
1284
  type: 'Load Request Success',
@@ -1245,25 +1287,21 @@ class ApiGateway {
1245
1287
  apiType,
1246
1288
  isPlayground: Boolean(context.signedWithPlaygroundAuthSecret),
1247
1289
  queries: results.length,
1248
- queriesWithPreAggregations: results.filter((r) => Object.keys(r.usedPreAggregations || {}).length).length,
1249
- queriesWithData: results.filter((r) => r.data?.length).length,
1250
- dbType: results.map(r => r.dbType),
1290
+ queriesWithPreAggregations: results.filter((r) => Object.keys(r.getRootResultObject()[0].usedPreAggregations || {}).length).length,
1291
+ // Have to omit because data could be processed natively
1292
+ // so it is not known at this point
1293
+ // queriesWithData:
1294
+ // results.filter((r: any) => r.data?.length).length,
1295
+ dbType: results.map(r => r.getRootResultObject()[0].dbType),
1251
1296
  }, context);
1252
- if (queryType !== enums_1.QueryType.REGULAR_QUERY &&
1253
- props.queryType == null) {
1254
- throw new UserError_1.UserError(`'${queryType}' query type is not supported by the client.` +
1255
- 'Please update the client.');
1256
- }
1257
1297
  if (props.queryType === 'multi') {
1258
- res({
1259
- queryType,
1260
- results,
1261
- pivotQuery: (0, query_1.getPivotQuery)(queryType, normalizedQueries),
1262
- slowQuery
1263
- });
1298
+ // We prepare the final json result on native side
1299
+ const resultMulti = new native_1.ResultMultiWrapper(results, { queryType, slowQuery });
1300
+ await res(resultMulti);
1264
1301
  }
1265
1302
  else {
1266
- res(results[0]);
1303
+ // We prepare the full final json result on native side
1304
+ await res(results[0]);
1267
1305
  }
1268
1306
  }
1269
1307
  catch (e) {
@@ -1335,6 +1373,7 @@ class ApiGateway {
1335
1373
  annotation
1336
1374
  }];
1337
1375
  }
1376
+ await res(request.streaming ? results[0] : { results });
1338
1377
  }
1339
1378
  else {
1340
1379
  results = await Promise.all(normalizedQueries.map(async (normalizedQuery, index) => {
@@ -1345,12 +1384,17 @@ class ApiGateway {
1345
1384
  return streamResponse(sqlQueries[index]);
1346
1385
  }
1347
1386
  const response = await this.getSqlResponseInternal(context, normalizedQuery, sqlQueries[index]);
1348
- return this.getResultInternal(context, queryType, normalizedQuery, sqlQueries[index], annotation, response, resType);
1387
+ return this.prepareResultTransformData(context, queryType, normalizedQuery, sqlQueries[index], annotation, response, resType);
1349
1388
  }));
1389
+ if (request.streaming) {
1390
+ await res(results[0]);
1391
+ }
1392
+ else {
1393
+ // We prepare the final json result on native side
1394
+ const resultArray = new native_1.ResultArrayWrapper(results);
1395
+ await res(resultArray);
1396
+ }
1350
1397
  }
1351
- res(request.streaming ? results[0] : {
1352
- results,
1353
- });
1354
1398
  }
1355
1399
  catch (e) {
1356
1400
  this.handleError({
@@ -1385,7 +1429,7 @@ class ApiGateway {
1385
1429
  query,
1386
1430
  context,
1387
1431
  res: (message, opts) => {
1388
- if (!Array.isArray(message) && message.error) {
1432
+ if (!Array.isArray(message) && 'error' in message && message.error) {
1389
1433
  error = { message, opts };
1390
1434
  }
1391
1435
  else {
@@ -1411,7 +1455,18 @@ class ApiGateway {
1411
1455
  }
1412
1456
  }
1413
1457
  resToResultFn(res) {
1414
- return (message, { status } = {}) => (status ? res.status(status).json(message) : res.json(message));
1458
+ return async (message, { status } = {}) => {
1459
+ if (status) {
1460
+ res.status(status);
1461
+ }
1462
+ if (message.isWrapper) {
1463
+ res.set('Content-Type', 'application/json');
1464
+ res.send(Buffer.from(await message.getFinalResult()));
1465
+ }
1466
+ else {
1467
+ res.json(message);
1468
+ }
1469
+ };
1415
1470
  }
1416
1471
  parseQueryParam(query) {
1417
1472
  if (!query || query === 'undefined') {