diff --git a/packages/cubejs-client-core/src/index.ts b/packages/cubejs-client-core/src/index.ts index d20bdeb9bb91b..d8b1782630ab9 100644 --- a/packages/cubejs-client-core/src/index.ts +++ b/packages/cubejs-client-core/src/index.ts @@ -46,6 +46,10 @@ export type LoadMethodOptions = { * Function that receives `ProgressResult` on each `Continue wait` message. */ progressCallback?(result: ProgressResult): void; + /** + * Cache mode for query execution + */ + cache?: CacheMode; /** * AbortSignal to cancel requests */ @@ -113,10 +117,6 @@ export type CubeSqlOptions = LoadMethodOptions & { * Query timeout in milliseconds */ timeout?: number; - /** - * Cache mode for query execution - */ - cache?: CacheMode; }; export type CubeSqlSchemaColumn = { @@ -575,13 +575,19 @@ class CubeApi { */ public load>(query: QueryType, options?: LoadMethodOptions, callback?: CallableFunction, responseFormat: ResponseFormat = 'default') { [query, options] = this.prepareQueryOptions(query, options, responseFormat); + const params: any = { + query, + queryType: 'multi', + signal: options?.signal, + baseRequestId: options?.baseRequestId, + }; + + if (options?.cache) { + params.cache = options.cache; + } + return this.loadMethod( - () => this.request('load', { - query, - queryType: 'multi', - signal: options?.signal, - baseRequestId: options?.baseRequestId, - }), + () => this.request('load', params), (response: any) => this.loadResponseInternal(response, options), options, callback