@cubejs-client/core 1.6.17 → 1.6.18
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.
- package/dist/cubejs-client-core.cjs.js +170 -160
- package/dist/cubejs-client-core.cjs.js.map +1 -1
- package/dist/cubejs-client-core.umd.js +171 -161
- package/dist/cubejs-client-core.umd.js.map +1 -1
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -6
- package/dist/test/CubeApi.test.js +93 -0
- package/package.json +3 -3
package/dist/src/index.d.ts
CHANGED
|
@@ -32,6 +32,10 @@ export type LoadMethodOptions = {
|
|
|
32
32
|
* Function that receives `ProgressResult` on each `Continue wait` message.
|
|
33
33
|
*/
|
|
34
34
|
progressCallback?(result: ProgressResult): void;
|
|
35
|
+
/**
|
|
36
|
+
* Server-side cache policy for query execution. Does not control client-side caching.
|
|
37
|
+
*/
|
|
38
|
+
cache?: CacheMode;
|
|
35
39
|
/**
|
|
36
40
|
* AbortSignal to cancel requests
|
|
37
41
|
*/
|
|
@@ -89,10 +93,6 @@ export type CubeSqlOptions = LoadMethodOptions & {
|
|
|
89
93
|
* Query timeout in milliseconds
|
|
90
94
|
*/
|
|
91
95
|
timeout?: number;
|
|
92
|
-
/**
|
|
93
|
-
* Cache mode for query execution
|
|
94
|
-
*/
|
|
95
|
-
cache?: CacheMode;
|
|
96
96
|
};
|
|
97
97
|
export type CubeSqlSchemaColumn = {
|
|
98
98
|
name: string;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAsB,EAAiB,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,YAAY,EAEZ,UAAU,EAEV,KAAK,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAClC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IAEH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,IACtD,CAAC,CAAC,SAAS;IAAE,UAAU,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;CAAE,GAAG,KAAK,GAAG,KAAK,CAAC,GACrE,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;CAAE,GAAG,KAAK,GAAG,KAAK,CAAC,GACnE,CAAC,CAAC,SAAS;IAAE,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;CAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAG/E,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,SAAS,KAAK,GAChG,GAAG,GACH;KAAG,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;CAAE,CAAC;AAE5E,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,cAAc,CAAC,KAAK,EAAE,CAAC,IAChE,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAC3C,qBAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,oBAAoB,CAAC,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,GACnG,KAAK,CAAC;AAEZ,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,cAAc,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IACnE,CAAC,SAAS,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,GACzD,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,GACxD,KAAK,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,KAAK,CAAC;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC,CAAC;IAC/C,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,KAAK,CAAC;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC,CAAC;IAC/C,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -14,6 +14,7 @@ function mutexPromise(promise) {
|
|
|
14
14
|
if (error !== MUTEX_ERROR) {
|
|
15
15
|
throw error;
|
|
16
16
|
}
|
|
17
|
+
return null;
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
@@ -182,7 +183,8 @@ class CubeApi {
|
|
|
182
183
|
}
|
|
183
184
|
return subscribeNext();
|
|
184
185
|
};
|
|
185
|
-
const promise = requestPromise
|
|
186
|
+
const promise = requestPromise
|
|
187
|
+
.then(requestInstance => mutexPromise(requestInstance.subscribe(loadImpl)));
|
|
186
188
|
if (callback) {
|
|
187
189
|
return {
|
|
188
190
|
unsubscribe: async () => {
|
|
@@ -312,12 +314,16 @@ class CubeApi {
|
|
|
312
314
|
*/
|
|
313
315
|
load(query, options, callback, responseFormat = 'default') {
|
|
314
316
|
[query, options] = this.prepareQueryOptions(query, options, responseFormat);
|
|
315
|
-
|
|
317
|
+
const params = {
|
|
316
318
|
query,
|
|
317
319
|
queryType: 'multi',
|
|
318
320
|
signal: options?.signal,
|
|
319
321
|
baseRequestId: options?.baseRequestId,
|
|
320
|
-
}
|
|
322
|
+
};
|
|
323
|
+
if (options?.cache) {
|
|
324
|
+
params.cache = options.cache;
|
|
325
|
+
}
|
|
326
|
+
return this.loadMethod(() => this.request('load', params), (response) => this.loadResponseInternal(response, options), options, callback);
|
|
321
327
|
}
|
|
322
328
|
prepareQueryOptions(query, options, responseFormat = 'default') {
|
|
323
329
|
options = {
|
|
@@ -407,14 +413,17 @@ class CubeApi {
|
|
|
407
413
|
*/
|
|
408
414
|
cubeSql(sqlQuery, options, callback) {
|
|
409
415
|
return this.loadMethod(() => {
|
|
410
|
-
const
|
|
416
|
+
const cubesqlParams = {
|
|
411
417
|
query: sqlQuery,
|
|
412
|
-
cache: options?.cache,
|
|
413
418
|
method: 'POST',
|
|
414
419
|
signal: options?.signal,
|
|
415
420
|
fetchTimeout: options?.timeout,
|
|
416
421
|
baseRequestId: options?.baseRequestId,
|
|
417
|
-
}
|
|
422
|
+
};
|
|
423
|
+
if (options?.cache) {
|
|
424
|
+
cubesqlParams.cache = options.cache;
|
|
425
|
+
}
|
|
426
|
+
const request = this.request('cubesql', cubesqlParams);
|
|
418
427
|
return request;
|
|
419
428
|
}, (response) => {
|
|
420
429
|
// TODO: The response is sending both errors and successful results as `error`
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
/* eslint-disable import/first */
|
|
8
8
|
import { CubeApi as CubeApiOriginal } from '../src';
|
|
9
9
|
import HttpTransport from '../src/HttpTransport';
|
|
10
|
+
import RequestError from '../src/RequestError';
|
|
10
11
|
import { DescriptiveQueryRequest, DescriptiveQueryRequestCompact, DescriptiveQueryResponse, NumericCastedData } from './helpers';
|
|
11
12
|
import ResultSet from '../src/ResultSet';
|
|
12
13
|
class CubeApi extends CubeApiOriginal {
|
|
@@ -97,6 +98,38 @@ describe('CubeApi Load', () => {
|
|
|
97
98
|
expect(res).toBeInstanceOf(ResultSet);
|
|
98
99
|
expect(res.rawData()).toEqual(DescriptiveQueryResponse.results[0].data);
|
|
99
100
|
});
|
|
101
|
+
test('simple query + { cache: "no-cache" }', async () => {
|
|
102
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
103
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
104
|
+
status: 200,
|
|
105
|
+
text: () => Promise.resolve(JSON.stringify(DescriptiveQueryResponse)),
|
|
106
|
+
json: () => Promise.resolve(DescriptiveQueryResponse)
|
|
107
|
+
}, async () => undefined))
|
|
108
|
+
}));
|
|
109
|
+
const cubeApi = new CubeApi('token', {
|
|
110
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1',
|
|
111
|
+
});
|
|
112
|
+
const res = await cubeApi.load(DescriptiveQueryRequest, { cache: 'no-cache' });
|
|
113
|
+
expect(res).toBeInstanceOf(ResultSet);
|
|
114
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
115
|
+
expect(requestSpy.mock.calls[0]?.[1]?.cache).toBe('no-cache');
|
|
116
|
+
});
|
|
117
|
+
test('simple query + { cache: "must-revalidate" }', async () => {
|
|
118
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
119
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
120
|
+
status: 200,
|
|
121
|
+
text: () => Promise.resolve(JSON.stringify(DescriptiveQueryResponse)),
|
|
122
|
+
json: () => Promise.resolve(DescriptiveQueryResponse)
|
|
123
|
+
}, async () => undefined))
|
|
124
|
+
}));
|
|
125
|
+
const cubeApi = new CubeApi('token', {
|
|
126
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1',
|
|
127
|
+
});
|
|
128
|
+
const res = await cubeApi.load(DescriptiveQueryRequest, { cache: 'must-revalidate' });
|
|
129
|
+
expect(res).toBeInstanceOf(ResultSet);
|
|
130
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
131
|
+
expect(requestSpy.mock.calls[0]?.[1]?.cache).toBe('must-revalidate');
|
|
132
|
+
});
|
|
100
133
|
test('2 queries + compact response format', async () => {
|
|
101
134
|
// Create a spy on the request method
|
|
102
135
|
jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
@@ -500,3 +533,63 @@ describe('CubeApi with baseRequestId', () => {
|
|
|
500
533
|
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
501
534
|
});
|
|
502
535
|
});
|
|
536
|
+
describe('CubeApi Mutex Cancellation', () => {
|
|
537
|
+
afterEach(() => {
|
|
538
|
+
jest.clearAllMocks();
|
|
539
|
+
jest.restoreAllMocks();
|
|
540
|
+
});
|
|
541
|
+
test('should return null for cancelled query when a newer query invalidates it', async () => {
|
|
542
|
+
jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
543
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
544
|
+
status: 200,
|
|
545
|
+
text: () => Promise.resolve(JSON.stringify(DescriptiveQueryResponse)),
|
|
546
|
+
json: () => Promise.resolve(DescriptiveQueryResponse)
|
|
547
|
+
}, async () => undefined))
|
|
548
|
+
}));
|
|
549
|
+
const cubeApi = new CubeApi('token', {
|
|
550
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1',
|
|
551
|
+
});
|
|
552
|
+
const mutexObj = {};
|
|
553
|
+
const query = DescriptiveQueryRequest;
|
|
554
|
+
// Fire two concurrent loads with the same mutexObj and mutexKey.
|
|
555
|
+
// The second call overwrites mutexObj['key'] before either resolves,
|
|
556
|
+
// so the first call's checkMutex() detects a mismatch and gets cancelled.
|
|
557
|
+
const [first, second] = await Promise.all([
|
|
558
|
+
cubeApi.load(query, { mutexObj, mutexKey: 'key' }),
|
|
559
|
+
cubeApi.load(query, { mutexObj, mutexKey: 'key' }),
|
|
560
|
+
]);
|
|
561
|
+
expect(first).toBeNull();
|
|
562
|
+
expect(second).toBeInstanceOf(ResultSet);
|
|
563
|
+
});
|
|
564
|
+
test('should return ResultSet when no mutex cancellation occurs', async () => {
|
|
565
|
+
jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
566
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
567
|
+
status: 200,
|
|
568
|
+
text: () => Promise.resolve(JSON.stringify(DescriptiveQueryResponse)),
|
|
569
|
+
json: () => Promise.resolve(DescriptiveQueryResponse)
|
|
570
|
+
}, async () => undefined))
|
|
571
|
+
}));
|
|
572
|
+
const cubeApi = new CubeApi('token', {
|
|
573
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1',
|
|
574
|
+
});
|
|
575
|
+
const mutexObj = {};
|
|
576
|
+
const res = await cubeApi.load(DescriptiveQueryRequest, { mutexObj, mutexKey: 'key' });
|
|
577
|
+
expect(res).toBeInstanceOf(ResultSet);
|
|
578
|
+
expect(res.rawData()).toEqual(DescriptiveQueryResponse.results[0].data);
|
|
579
|
+
});
|
|
580
|
+
test('should propagate non-mutex errors', async () => {
|
|
581
|
+
const errorBody = { error: 'Internal Server Error' };
|
|
582
|
+
jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
583
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
584
|
+
status: 500,
|
|
585
|
+
text: () => Promise.resolve(JSON.stringify(errorBody)),
|
|
586
|
+
json: () => Promise.resolve(errorBody)
|
|
587
|
+
}, async () => undefined))
|
|
588
|
+
}));
|
|
589
|
+
const cubeApi = new CubeApi('token', {
|
|
590
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1',
|
|
591
|
+
});
|
|
592
|
+
const mutexObj = {};
|
|
593
|
+
await expect(cubeApi.load(DescriptiveQueryRequest, { mutexObj, mutexKey: 'key' })).rejects.toThrow(RequestError);
|
|
594
|
+
});
|
|
595
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-client/core",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.18",
|
|
4
4
|
"engines": {},
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
],
|
|
40
40
|
"license": "MIT",
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@cubejs-backend/linter": "1.6.
|
|
42
|
+
"@cubejs-backend/linter": "1.6.18",
|
|
43
43
|
"@types/jest": "^29",
|
|
44
44
|
"@types/moment-range": "^4.0.0",
|
|
45
45
|
"@types/ramda": "^0.27.34",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"eslintConfig": {
|
|
52
52
|
"extends": "../cubejs-linter"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "098d185fe7647c734964548ef74d2f3991ae265c"
|
|
55
55
|
}
|