@cubejs-client/core 1.5.11 → 1.5.13
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 +17 -11
- package/dist/cubejs-client-core.cjs.js.map +1 -1
- package/dist/cubejs-client-core.umd.js +17 -11
- package/dist/cubejs-client-core.umd.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +14 -8
- package/dist/test/CubeApi.test.js +161 -0
- package/package.json +3 -3
package/dist/src/index.d.ts
CHANGED
|
@@ -36,6 +36,10 @@ export type LoadMethodOptions = {
|
|
|
36
36
|
* AbortSignal to cancel requests
|
|
37
37
|
*/
|
|
38
38
|
signal?: AbortSignal;
|
|
39
|
+
/**
|
|
40
|
+
* Client provided request ID, if client wants to track request onb their own
|
|
41
|
+
*/
|
|
42
|
+
baseRequestId?: string;
|
|
39
43
|
};
|
|
40
44
|
export type DeeplyReadonly<T> = {
|
|
41
45
|
readonly [K in keyof T]: DeeplyReadonly<T[K]>;
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -71,8 +71,8 @@ class CubeApi {
|
|
|
71
71
|
}
|
|
72
72
|
request(method, params) {
|
|
73
73
|
return this.transport.request(method, {
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
...params,
|
|
75
|
+
baseRequestId: params?.baseRequestId || uuidv4(),
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
78
|
loadMethod(request, toResult, options, callback) {
|
|
@@ -315,7 +315,8 @@ class CubeApi {
|
|
|
315
315
|
return this.loadMethod(() => this.request('load', {
|
|
316
316
|
query,
|
|
317
317
|
queryType: 'multi',
|
|
318
|
-
signal: options?.signal
|
|
318
|
+
signal: options?.signal,
|
|
319
|
+
baseRequestId: options?.baseRequestId,
|
|
319
320
|
}), (response) => this.loadResponseInternal(response, options), options, callback);
|
|
320
321
|
}
|
|
321
322
|
prepareQueryOptions(query, options, responseFormat = 'default') {
|
|
@@ -368,7 +369,8 @@ class CubeApi {
|
|
|
368
369
|
return this.loadMethod(() => this.request('subscribe', {
|
|
369
370
|
query,
|
|
370
371
|
queryType: 'multi',
|
|
371
|
-
signal: options?.signal
|
|
372
|
+
signal: options?.signal,
|
|
373
|
+
baseRequestId: options?.baseRequestId,
|
|
372
374
|
}), (response) => this.loadResponseInternal(response, options), { ...options, subscribe: true }, callback);
|
|
373
375
|
}
|
|
374
376
|
/**
|
|
@@ -377,7 +379,8 @@ class CubeApi {
|
|
|
377
379
|
sql(query, options, callback) {
|
|
378
380
|
return this.loadMethod(() => this.request('sql', {
|
|
379
381
|
query,
|
|
380
|
-
signal: options?.signal
|
|
382
|
+
signal: options?.signal,
|
|
383
|
+
baseRequestId: options?.baseRequestId,
|
|
381
384
|
}), (response) => (Array.isArray(response) ? response.map((body) => new SqlQuery(body)) : new SqlQuery(response)), options, callback);
|
|
382
385
|
}
|
|
383
386
|
/**
|
|
@@ -385,7 +388,8 @@ class CubeApi {
|
|
|
385
388
|
*/
|
|
386
389
|
meta(options, callback) {
|
|
387
390
|
return this.loadMethod(() => this.request('meta', {
|
|
388
|
-
signal: options?.signal
|
|
391
|
+
signal: options?.signal,
|
|
392
|
+
baseRequestId: options?.baseRequestId,
|
|
389
393
|
}), (body) => new Meta(body), options, callback);
|
|
390
394
|
}
|
|
391
395
|
/**
|
|
@@ -394,7 +398,8 @@ class CubeApi {
|
|
|
394
398
|
dryRun(query, options, callback) {
|
|
395
399
|
return this.loadMethod(() => this.request('dry-run', {
|
|
396
400
|
query,
|
|
397
|
-
signal: options?.signal
|
|
401
|
+
signal: options?.signal,
|
|
402
|
+
baseRequestId: options?.baseRequestId,
|
|
398
403
|
}), (response) => response, options, callback);
|
|
399
404
|
}
|
|
400
405
|
/**
|
|
@@ -407,7 +412,8 @@ class CubeApi {
|
|
|
407
412
|
cache: options?.cache,
|
|
408
413
|
method: 'POST',
|
|
409
414
|
signal: options?.signal,
|
|
410
|
-
fetchTimeout: options?.timeout
|
|
415
|
+
fetchTimeout: options?.timeout,
|
|
416
|
+
baseRequestId: options?.baseRequestId,
|
|
411
417
|
});
|
|
412
418
|
return request;
|
|
413
419
|
}, (response) => {
|
|
@@ -277,3 +277,164 @@ describe('CubeApi with Abort Signal', () => {
|
|
|
277
277
|
expect(requestSpy.mock.calls[0]?.[1]?.signal).toBe(signal);
|
|
278
278
|
});
|
|
279
279
|
});
|
|
280
|
+
describe('CubeApi with baseRequestId', () => {
|
|
281
|
+
afterEach(() => {
|
|
282
|
+
jest.clearAllMocks();
|
|
283
|
+
jest.restoreAllMocks();
|
|
284
|
+
});
|
|
285
|
+
test('should pass baseRequestId from options to request', async () => {
|
|
286
|
+
const baseRequestId = 'custom-request-id-123';
|
|
287
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
288
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
289
|
+
status: 200,
|
|
290
|
+
text: () => Promise.resolve('{"results":[]}'),
|
|
291
|
+
json: () => Promise.resolve({ results: [] })
|
|
292
|
+
}, async () => undefined))
|
|
293
|
+
}));
|
|
294
|
+
const cubeApi = new CubeApi('token', {
|
|
295
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
296
|
+
});
|
|
297
|
+
await cubeApi.load({ measures: ['Orders.count'] }, { baseRequestId });
|
|
298
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
299
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
300
|
+
});
|
|
301
|
+
test('should generate baseRequestId if not provided', async () => {
|
|
302
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
303
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
304
|
+
status: 200,
|
|
305
|
+
text: () => Promise.resolve('{"results":[]}'),
|
|
306
|
+
json: () => Promise.resolve({ results: [] })
|
|
307
|
+
}, async () => undefined))
|
|
308
|
+
}));
|
|
309
|
+
const cubeApi = new CubeApi('token', {
|
|
310
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
311
|
+
});
|
|
312
|
+
await cubeApi.load({ measures: ['Orders.count'] });
|
|
313
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
314
|
+
// Should have a baseRequestId (generated via uuidv4)
|
|
315
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBeDefined();
|
|
316
|
+
expect(typeof requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe('string');
|
|
317
|
+
});
|
|
318
|
+
test('should pass baseRequestId to sql request', async () => {
|
|
319
|
+
const baseRequestId = 'sql-request-id-456';
|
|
320
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
321
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
322
|
+
status: 200,
|
|
323
|
+
text: () => Promise.resolve('{"sql":{"sql":"SELECT * FROM orders"}}'),
|
|
324
|
+
json: () => Promise.resolve({ sql: { sql: 'SELECT * FROM orders' } })
|
|
325
|
+
}, async () => undefined))
|
|
326
|
+
}));
|
|
327
|
+
const cubeApi = new CubeApi('token', {
|
|
328
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
329
|
+
});
|
|
330
|
+
await cubeApi.sql({ measures: ['Orders.count'] }, { baseRequestId });
|
|
331
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
332
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
333
|
+
});
|
|
334
|
+
test('should pass baseRequestId to dryRun request', async () => {
|
|
335
|
+
const baseRequestId = 'dryrun-request-id-789';
|
|
336
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
337
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
338
|
+
status: 200,
|
|
339
|
+
text: () => Promise.resolve('{"queryType":"regular"}'),
|
|
340
|
+
json: () => Promise.resolve({ queryType: 'regular' })
|
|
341
|
+
}, async () => undefined))
|
|
342
|
+
}));
|
|
343
|
+
const cubeApi = new CubeApi('token', {
|
|
344
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
345
|
+
});
|
|
346
|
+
await cubeApi.dryRun({ measures: ['Orders.count'] }, { baseRequestId });
|
|
347
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
348
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
349
|
+
});
|
|
350
|
+
test('should pass baseRequestId to subscribe request', async () => {
|
|
351
|
+
const baseRequestId = 'subscribe-request-id-abc';
|
|
352
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
353
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
354
|
+
status: 200,
|
|
355
|
+
text: () => Promise.resolve('{"results":[]}'),
|
|
356
|
+
json: () => Promise.resolve({ results: [] })
|
|
357
|
+
}, async () => undefined))
|
|
358
|
+
}));
|
|
359
|
+
const cubeApi = new CubeApi('token', {
|
|
360
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
361
|
+
});
|
|
362
|
+
const subscription = cubeApi.subscribe({ measures: ['Orders.count'] }, { baseRequestId },
|
|
363
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
364
|
+
() => { });
|
|
365
|
+
// Wait for the subscription to be initiated
|
|
366
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
367
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
368
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
369
|
+
subscription.unsubscribe();
|
|
370
|
+
});
|
|
371
|
+
test('should pass baseRequestId with multiple queries', async () => {
|
|
372
|
+
const baseRequestId = 'multi-query-request-id';
|
|
373
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
374
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
375
|
+
status: 200,
|
|
376
|
+
text: () => Promise.resolve(JSON.stringify(DescriptiveQueryResponse)),
|
|
377
|
+
json: () => Promise.resolve(DescriptiveQueryResponse)
|
|
378
|
+
}, async () => undefined))
|
|
379
|
+
}));
|
|
380
|
+
const cubeApi = new CubeApi('token', {
|
|
381
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
382
|
+
});
|
|
383
|
+
await cubeApi.load([
|
|
384
|
+
{ measures: ['Orders.count'] },
|
|
385
|
+
{ measures: ['Users.count'] }
|
|
386
|
+
], { baseRequestId });
|
|
387
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
388
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
389
|
+
});
|
|
390
|
+
test('should pass baseRequestId to meta request', async () => {
|
|
391
|
+
const baseRequestId = 'meta-request-id-def';
|
|
392
|
+
const requestSpy = jest.spyOn(HttpTransport.prototype, 'request').mockImplementation(() => ({
|
|
393
|
+
subscribe: (cb) => Promise.resolve(cb({
|
|
394
|
+
status: 200,
|
|
395
|
+
text: () => Promise.resolve(JSON.stringify({
|
|
396
|
+
cubes: [{
|
|
397
|
+
name: 'Orders',
|
|
398
|
+
title: 'Orders',
|
|
399
|
+
measures: [{
|
|
400
|
+
name: 'count',
|
|
401
|
+
title: 'Count',
|
|
402
|
+
shortTitle: 'Count',
|
|
403
|
+
type: 'number'
|
|
404
|
+
}],
|
|
405
|
+
dimensions: [{
|
|
406
|
+
name: 'status',
|
|
407
|
+
title: 'Status',
|
|
408
|
+
type: 'string'
|
|
409
|
+
}],
|
|
410
|
+
segments: []
|
|
411
|
+
}]
|
|
412
|
+
})),
|
|
413
|
+
json: () => Promise.resolve({
|
|
414
|
+
cubes: [{
|
|
415
|
+
name: 'Orders',
|
|
416
|
+
title: 'Orders',
|
|
417
|
+
measures: [{
|
|
418
|
+
name: 'count',
|
|
419
|
+
title: 'Count',
|
|
420
|
+
shortTitle: 'Count',
|
|
421
|
+
type: 'number'
|
|
422
|
+
}],
|
|
423
|
+
dimensions: [{
|
|
424
|
+
name: 'status',
|
|
425
|
+
title: 'Status',
|
|
426
|
+
type: 'string'
|
|
427
|
+
}],
|
|
428
|
+
segments: []
|
|
429
|
+
}]
|
|
430
|
+
})
|
|
431
|
+
}, async () => undefined))
|
|
432
|
+
}));
|
|
433
|
+
const cubeApi = new CubeApi('token', {
|
|
434
|
+
apiUrl: 'http://localhost:4000/cubejs-api/v1'
|
|
435
|
+
});
|
|
436
|
+
await cubeApi.meta({ baseRequestId });
|
|
437
|
+
expect(requestSpy).toHaveBeenCalled();
|
|
438
|
+
expect(requestSpy.mock.calls[0]?.[1]?.baseRequestId).toBe(baseRequestId);
|
|
439
|
+
});
|
|
440
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cubejs-client/core",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.13",
|
|
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.5.
|
|
42
|
+
"@cubejs-backend/linter": "1.5.13",
|
|
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": "0e09c4f31a5e41eecbe3d6b480bbe24d52dcd8a0"
|
|
55
55
|
}
|