Skip to content
26 changes: 16 additions & 10 deletions packages/cubejs-client-core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand Down Expand Up @@ -113,10 +117,6 @@ export type CubeSqlOptions = LoadMethodOptions & {
* Query timeout in milliseconds
*/
timeout?: number;
/**
* Cache mode for query execution
*/
cache?: CacheMode;
};

export type CubeSqlSchemaColumn = {
Expand Down Expand Up @@ -575,13 +575,19 @@ class CubeApi {
*/
public load<QueryType extends DeeplyReadonly<Query | Query[]>>(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
Expand Down
Loading