@cubejs-backend/cubestore-driver 0.31.38 → 0.31.39
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.
|
@@ -2,8 +2,10 @@ import { MaybeCancelablePromise } from '@cubejs-backend/shared';
|
|
|
2
2
|
import { CacheDriverInterface } from '@cubejs-backend/base-driver';
|
|
3
3
|
import { CubeStoreDriver } from './CubeStoreDriver';
|
|
4
4
|
export declare class CubeStoreCacheDriver implements CacheDriverInterface {
|
|
5
|
-
protected
|
|
6
|
-
constructor(
|
|
5
|
+
protected connectionFactory: () => Promise<CubeStoreDriver>;
|
|
6
|
+
constructor(connectionFactory: () => Promise<CubeStoreDriver>);
|
|
7
|
+
protected connection: CubeStoreDriver | null;
|
|
8
|
+
protected getConnection(): Promise<CubeStoreDriver>;
|
|
7
9
|
withLock: (key: string, cb: () => MaybeCancelablePromise<any>, expiration?: number, freeAfter?: boolean) => import("@cubejs-backend/shared").CancelablePromise<boolean>;
|
|
8
10
|
get(key: string): Promise<any>;
|
|
9
11
|
set(key: string, value: any, expiration: any): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeStoreCacheDriver.d.ts","sourceRoot":"","sources":["../../src/CubeStoreCacheDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,oBAAqB,YAAW,oBAAoB;IAE7D,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"CubeStoreCacheDriver.d.ts","sourceRoot":"","sources":["../../src/CubeStoreCacheDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,oBAAqB,YAAW,oBAAoB;IAE7D,SAAS,CAAC,iBAAiB,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC;gBAAjD,iBAAiB,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC;IAG7D,SAAS,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAQ;cAEpC,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IASlD,QAAQ,QACR,MAAM,MACP,MAAM,uBAAuB,GAAG,CAAC,eACzB,MAAM,cACP,OAAO,iEAkCjB;IAEU,GAAG,CAAC,GAAG,EAAE,MAAM;IAWf,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,KAAA,EAAE,UAAU,KAAA;;;;IAUlC,MAAM,CAAC,GAAG,EAAE,MAAM;IAMlB,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAO/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7C"}
|
|
@@ -3,18 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CubeStoreCacheDriver = void 0;
|
|
4
4
|
const shared_1 = require("@cubejs-backend/shared");
|
|
5
5
|
class CubeStoreCacheDriver {
|
|
6
|
-
constructor(
|
|
7
|
-
this.
|
|
6
|
+
constructor(connectionFactory) {
|
|
7
|
+
this.connectionFactory = connectionFactory;
|
|
8
|
+
this.connection = null;
|
|
8
9
|
this.withLock = (key, cb, expiration = 60, freeAfter = true) => shared_1.createCancelablePromise(async (tkn) => {
|
|
9
10
|
var _a;
|
|
10
11
|
if (tkn.isCanceled()) {
|
|
11
12
|
return false;
|
|
12
13
|
}
|
|
13
|
-
const
|
|
14
|
+
const connection = (await this.getConnection());
|
|
15
|
+
const rows = await connection.query('CACHE SET NX TTL ? ? ?', [expiration, key, '1']);
|
|
14
16
|
if (rows && rows.length === 1 && ((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.success) === 'true') {
|
|
15
17
|
if (tkn.isCanceled()) {
|
|
16
18
|
if (freeAfter) {
|
|
17
|
-
await
|
|
19
|
+
await connection.query('CACHE REMOVE ?', [
|
|
18
20
|
key
|
|
19
21
|
]);
|
|
20
22
|
}
|
|
@@ -25,7 +27,7 @@ class CubeStoreCacheDriver {
|
|
|
25
27
|
}
|
|
26
28
|
finally {
|
|
27
29
|
if (freeAfter) {
|
|
28
|
-
await
|
|
30
|
+
await connection.query('CACHE REMOVE ?', [
|
|
29
31
|
key
|
|
30
32
|
]);
|
|
31
33
|
}
|
|
@@ -35,8 +37,15 @@ class CubeStoreCacheDriver {
|
|
|
35
37
|
return false;
|
|
36
38
|
});
|
|
37
39
|
}
|
|
40
|
+
async getConnection() {
|
|
41
|
+
if (this.connection) {
|
|
42
|
+
return this.connection;
|
|
43
|
+
}
|
|
44
|
+
// eslint-disable-next-line no-return-assign
|
|
45
|
+
return this.connection = await this.connectionFactory();
|
|
46
|
+
}
|
|
38
47
|
async get(key) {
|
|
39
|
-
const rows = await this.
|
|
48
|
+
const rows = await (await this.getConnection()).query('CACHE GET ?', [
|
|
40
49
|
key
|
|
41
50
|
]);
|
|
42
51
|
if (rows && rows.length === 1) {
|
|
@@ -46,19 +55,19 @@ class CubeStoreCacheDriver {
|
|
|
46
55
|
}
|
|
47
56
|
async set(key, value, expiration) {
|
|
48
57
|
const strValue = JSON.stringify(value);
|
|
49
|
-
await this.
|
|
58
|
+
await (await this.getConnection()).query('CACHE SET TTL ? ? ?', [expiration, key, strValue]);
|
|
50
59
|
return {
|
|
51
60
|
key,
|
|
52
61
|
bytes: Buffer.byteLength(strValue),
|
|
53
62
|
};
|
|
54
63
|
}
|
|
55
64
|
async remove(key) {
|
|
56
|
-
await this.
|
|
65
|
+
await (await this.getConnection()).query('CACHE REMOVE ?', [
|
|
57
66
|
key
|
|
58
67
|
]);
|
|
59
68
|
}
|
|
60
69
|
async keysStartingWith(prefix) {
|
|
61
|
-
const rows = await this.
|
|
70
|
+
const rows = await (await this.getConnection()).query('CACHE KEYS ?', [
|
|
62
71
|
prefix
|
|
63
72
|
]);
|
|
64
73
|
return rows.map((row) => row.key);
|
|
@@ -67,7 +76,7 @@ class CubeStoreCacheDriver {
|
|
|
67
76
|
//
|
|
68
77
|
}
|
|
69
78
|
async testConnection() {
|
|
70
|
-
return this.
|
|
79
|
+
return (await this.getConnection()).testConnection();
|
|
71
80
|
}
|
|
72
81
|
}
|
|
73
82
|
exports.CubeStoreCacheDriver = CubeStoreCacheDriver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CubeStoreCacheDriver.js","sourceRoot":"","sources":["../../src/CubeStoreCacheDriver.ts"],"names":[],"mappings":";;;AAAA,mDAAyF;AAKzF,MAAa,oBAAoB;IAC/B,
|
|
1
|
+
{"version":3,"file":"CubeStoreCacheDriver.js","sourceRoot":"","sources":["../../src/CubeStoreCacheDriver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@cubejs-backend/cubestore-driver",
|
|
3
3
|
"description": "Cube Store driver",
|
|
4
4
|
"author": "Cube Dev, Inc.",
|
|
5
|
-
"version": "0.31.
|
|
5
|
+
"version": "0.31.39",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/cube-js/cube.js.git",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"eslintConfig": {
|
|
64
64
|
"extends": "../cubejs-linter"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "2b15f0ce494db09f3e679468d440b7dbaa9486ec"
|
|
67
67
|
}
|