@quillsql/node 0.9.14 → 0.9.15
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/cjs/db/CachedConnection.js +57 -7
- package/dist/cjs/db/CachedConnection.js.map +1 -1
- package/dist/cjs/models/Cache.d.ts +12 -0
- package/dist/esm/db/CachedConnection.js +57 -7
- package/dist/esm/db/CachedConnection.js.map +1 -1
- package/dist/esm/models/Cache.d.ts +12 -0
- package/package.json +1 -1
|
@@ -39,6 +39,7 @@ class CachedConnection {
|
|
|
39
39
|
}
|
|
40
40
|
query(text_1) {
|
|
41
41
|
return __awaiter(this, arguments, void 0, function* (text, overwriteCache = false) {
|
|
42
|
+
var _a;
|
|
42
43
|
try {
|
|
43
44
|
if (this.isClosed) {
|
|
44
45
|
throw new Error("Connection is closed");
|
|
@@ -46,15 +47,64 @@ class CachedConnection {
|
|
|
46
47
|
if (!this.cache) {
|
|
47
48
|
return yield (0, DatabaseHelper_1.runQueryByDatabase)(this.databaseType, this.pool, text);
|
|
48
49
|
}
|
|
49
|
-
const
|
|
50
|
+
const tenantScope = JSON.stringify((_a = this.tenantIds) !== null && _a !== void 0 ? _a : ["__NO_TENANT__"]);
|
|
51
|
+
const keyBase = `v3:${tenantScope}:${text}`;
|
|
52
|
+
const fieldsKey = `${keyBase}:fields`;
|
|
53
|
+
const rowsKey = `${keyBase}:rows`;
|
|
54
|
+
const metaKey = `${keyBase}:meta`;
|
|
50
55
|
if (!overwriteCache) {
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
|
|
56
|
+
const cachedMeta = yield this.cache.get(metaKey);
|
|
57
|
+
if (cachedMeta !== null) {
|
|
58
|
+
try {
|
|
59
|
+
const parsedMeta = JSON.parse(cachedMeta);
|
|
60
|
+
const [cachedFields, cachedRows] = yield Promise.all([
|
|
61
|
+
this.cache.lRange(fieldsKey, 0, -1),
|
|
62
|
+
this.cache.lRange(rowsKey, 0, -1),
|
|
63
|
+
]);
|
|
64
|
+
if (parsedMeta.fieldsCount === cachedFields.length &&
|
|
65
|
+
parsedMeta.rowsCount === cachedRows.length) {
|
|
66
|
+
return {
|
|
67
|
+
fields: cachedFields.map((item) => JSON.parse(item)),
|
|
68
|
+
rows: cachedRows.map((item) => JSON.parse(item)),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (_b) {
|
|
73
|
+
// Any parse/shape failure should invalidate this cache set.
|
|
74
|
+
}
|
|
75
|
+
yield this.cache.del(metaKey, fieldsKey, rowsKey);
|
|
76
|
+
}
|
|
54
77
|
}
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
78
|
+
const newResult = yield (0, DatabaseHelper_1.runQueryByDatabase)(this.databaseType, this.pool, text);
|
|
79
|
+
if (!newResult) {
|
|
80
|
+
return newResult;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const fields = Array.isArray(newResult.fields) ? newResult.fields : [];
|
|
84
|
+
const rows = Array.isArray(newResult.rows) ? newResult.rows : [];
|
|
85
|
+
const fieldsPayload = fields.map((field) => JSON.stringify(field));
|
|
86
|
+
const rowsPayload = rows.map((row) => JSON.stringify(row));
|
|
87
|
+
const metaPayload = JSON.stringify({
|
|
88
|
+
fieldsCount: fieldsPayload.length,
|
|
89
|
+
rowsCount: rowsPayload.length,
|
|
90
|
+
});
|
|
91
|
+
const tx = this.cache.multi();
|
|
92
|
+
tx.del(metaKey, fieldsKey, rowsKey);
|
|
93
|
+
if (fieldsPayload.length) {
|
|
94
|
+
tx.rPush(fieldsKey, fieldsPayload);
|
|
95
|
+
tx.expire(fieldsKey, this.ttl);
|
|
96
|
+
}
|
|
97
|
+
if (rowsPayload.length) {
|
|
98
|
+
tx.rPush(rowsKey, rowsPayload);
|
|
99
|
+
tx.expire(rowsKey, this.ttl);
|
|
100
|
+
}
|
|
101
|
+
tx.set(metaKey, metaPayload, "EX", this.ttl);
|
|
102
|
+
yield tx.exec();
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
console.warn("Redis Cache Set Failed: ", error);
|
|
106
|
+
}
|
|
107
|
+
return newResult;
|
|
58
108
|
}
|
|
59
109
|
catch (err) {
|
|
60
110
|
if ((0, Error_1.isSuperset)(err, Error_1.PgError)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedConnection.js","sourceRoot":"","sources":["../../../src/db/CachedConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,iCAAqC;AACrC,0CAAqD;AACrD,qDAO0B;AAE1B,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvC,MAAa,gBAAgB;IAQ3B,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4DAA4D;IAC5D,YACE,YAAoC,EACpC,MAAgC,EAChC,cAAyC,EAAE;;QAbtC,cAAS,GAA+B,IAAI,CAAC;QAI5C,cAAS,GAAY,KAAK,CAAC;QAWjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAA,kCAAiB,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,mCAAI,iBAAiB,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,gCAAgC;IACzB,MAAM,CAAO,MAAM;6DACxB,YAAoC,EACpC,MAAgC,EAChC,cAAyC,EAAE;YAE3C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACzE,QAAQ,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEY,KAAK;6DAAC,IAAY,EAAE,iBAA0B,KAAK
|
|
1
|
+
{"version":3,"file":"CachedConnection.js","sourceRoot":"","sources":["../../../src/db/CachedConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
export interface Mappable {
|
|
2
2
|
get(key: string): Promise<string | null>;
|
|
3
3
|
set(key: string, value: string, type?: string, ttl?: number): Promise<string | null>;
|
|
4
|
+
lRange(key: string, start: number, stop: number): Promise<string[]>;
|
|
5
|
+
rPush(key: string, elements: string[]): Promise<number>;
|
|
6
|
+
expire(key: string, seconds: number): Promise<number | boolean>;
|
|
7
|
+
del(...keys: string[]): Promise<number>;
|
|
8
|
+
multi(): CacheTransaction;
|
|
9
|
+
}
|
|
10
|
+
export interface CacheTransaction {
|
|
11
|
+
del(...keys: string[]): CacheTransaction;
|
|
12
|
+
rPush(key: string, elements: string[]): CacheTransaction;
|
|
13
|
+
expire(key: string, seconds: number): CacheTransaction;
|
|
14
|
+
set(key: string, value: string, type?: string, ttl?: number): CacheTransaction;
|
|
15
|
+
exec(): Promise<unknown>;
|
|
4
16
|
}
|
|
5
17
|
export interface CacheCredentials {
|
|
6
18
|
username: string;
|
|
@@ -36,6 +36,7 @@ export class CachedConnection {
|
|
|
36
36
|
}
|
|
37
37
|
query(text_1) {
|
|
38
38
|
return __awaiter(this, arguments, void 0, function* (text, overwriteCache = false) {
|
|
39
|
+
var _a;
|
|
39
40
|
try {
|
|
40
41
|
if (this.isClosed) {
|
|
41
42
|
throw new Error("Connection is closed");
|
|
@@ -43,15 +44,64 @@ export class CachedConnection {
|
|
|
43
44
|
if (!this.cache) {
|
|
44
45
|
return yield runQueryByDatabase(this.databaseType, this.pool, text);
|
|
45
46
|
}
|
|
46
|
-
const
|
|
47
|
+
const tenantScope = JSON.stringify((_a = this.tenantIds) !== null && _a !== void 0 ? _a : ["__NO_TENANT__"]);
|
|
48
|
+
const keyBase = `v3:${tenantScope}:${text}`;
|
|
49
|
+
const fieldsKey = `${keyBase}:fields`;
|
|
50
|
+
const rowsKey = `${keyBase}:rows`;
|
|
51
|
+
const metaKey = `${keyBase}:meta`;
|
|
47
52
|
if (!overwriteCache) {
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
50
|
-
|
|
53
|
+
const cachedMeta = yield this.cache.get(metaKey);
|
|
54
|
+
if (cachedMeta !== null) {
|
|
55
|
+
try {
|
|
56
|
+
const parsedMeta = JSON.parse(cachedMeta);
|
|
57
|
+
const [cachedFields, cachedRows] = yield Promise.all([
|
|
58
|
+
this.cache.lRange(fieldsKey, 0, -1),
|
|
59
|
+
this.cache.lRange(rowsKey, 0, -1),
|
|
60
|
+
]);
|
|
61
|
+
if (parsedMeta.fieldsCount === cachedFields.length &&
|
|
62
|
+
parsedMeta.rowsCount === cachedRows.length) {
|
|
63
|
+
return {
|
|
64
|
+
fields: cachedFields.map((item) => JSON.parse(item)),
|
|
65
|
+
rows: cachedRows.map((item) => JSON.parse(item)),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (_b) {
|
|
70
|
+
// Any parse/shape failure should invalidate this cache set.
|
|
71
|
+
}
|
|
72
|
+
yield this.cache.del(metaKey, fieldsKey, rowsKey);
|
|
73
|
+
}
|
|
51
74
|
}
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
75
|
+
const newResult = yield runQueryByDatabase(this.databaseType, this.pool, text);
|
|
76
|
+
if (!newResult) {
|
|
77
|
+
return newResult;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const fields = Array.isArray(newResult.fields) ? newResult.fields : [];
|
|
81
|
+
const rows = Array.isArray(newResult.rows) ? newResult.rows : [];
|
|
82
|
+
const fieldsPayload = fields.map((field) => JSON.stringify(field));
|
|
83
|
+
const rowsPayload = rows.map((row) => JSON.stringify(row));
|
|
84
|
+
const metaPayload = JSON.stringify({
|
|
85
|
+
fieldsCount: fieldsPayload.length,
|
|
86
|
+
rowsCount: rowsPayload.length,
|
|
87
|
+
});
|
|
88
|
+
const tx = this.cache.multi();
|
|
89
|
+
tx.del(metaKey, fieldsKey, rowsKey);
|
|
90
|
+
if (fieldsPayload.length) {
|
|
91
|
+
tx.rPush(fieldsKey, fieldsPayload);
|
|
92
|
+
tx.expire(fieldsKey, this.ttl);
|
|
93
|
+
}
|
|
94
|
+
if (rowsPayload.length) {
|
|
95
|
+
tx.rPush(rowsKey, rowsPayload);
|
|
96
|
+
tx.expire(rowsKey, this.ttl);
|
|
97
|
+
}
|
|
98
|
+
tx.set(metaKey, metaPayload, "EX", this.ttl);
|
|
99
|
+
yield tx.exec();
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.warn("Redis Cache Set Failed: ", error);
|
|
103
|
+
}
|
|
104
|
+
return newResult;
|
|
55
105
|
}
|
|
56
106
|
catch (err) {
|
|
57
107
|
if (isSuperset(err, PgError)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedConnection.js","sourceRoot":"","sources":["../../../src/db/CachedConnection.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAIL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvC,MAAM,OAAO,gBAAgB;IAQ3B,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4DAA4D;IAC5D,YACE,YAAoC,EACpC,MAAgC,EAChC,cAAyC,EAAE;;QAbtC,cAAS,GAA+B,IAAI,CAAC;QAI5C,cAAS,GAAY,KAAK,CAAC;QAWjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,mCAAI,iBAAiB,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,gCAAgC;IACzB,MAAM,CAAO,MAAM;6DACxB,YAAoC,EACpC,MAAgC,EAChC,cAAyC,EAAE;YAE3C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACzE,QAAQ,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEY,KAAK;6DAAC,IAAY,EAAE,iBAA0B,KAAK
|
|
1
|
+
{"version":3,"file":"CachedConnection.js","sourceRoot":"","sources":["../../../src/db/CachedConnection.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAIL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvC,MAAM,OAAO,gBAAgB;IAQ3B,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,4DAA4D;IAC5D,YACE,YAAoC,EACpC,MAAgC,EAChC,cAAyC,EAAE;;QAbtC,cAAS,GAA+B,IAAI,CAAC;QAI5C,cAAS,GAAY,KAAK,CAAC;QAWjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,mCAAI,iBAAiB,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,gCAAgC;IACzB,MAAM,CAAO,MAAM;6DACxB,YAAoC,EACpC,MAAgC,EAChC,cAAyC,EAAE;YAE3C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACzE,QAAQ,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEY,KAAK;6DAAC,IAAY,EAAE,iBAA0B,KAAK;;YAC9D,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,OAAO,MAAM,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACtE,CAAC;gBACD,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CACxC,MAAA,IAAI,CAAC,SAAS,mCAAI,CAAC,eAAe,CAAC,CACpC,CAAC;gBACF,MAAM,OAAO,GAAW,MAAM,WAAW,IAAI,IAAI,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAW,GAAG,OAAO,SAAS,CAAC;gBAC9C,MAAM,OAAO,GAAW,GAAG,OAAO,OAAO,CAAC;gBAC1C,MAAM,OAAO,GAAW,GAAG,OAAO,OAAO,CAAC;gBAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACjD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,IAAI,CAAC;4BACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAGvC,CAAC;4BACF,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gCACnD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gCACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;6BAClC,CAAC,CAAC;4BACH,IACE,UAAU,CAAC,WAAW,KAAK,YAAY,CAAC,MAAM;gCAC9C,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC,MAAM,EAC1C,CAAC;gCACD,OAAO;oCACL,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oCACpD,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iCACjD,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAAC,WAAM,CAAC;4BACP,4DAA4D;wBAC9D,CAAC;wBACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,kBAAkB,CACxC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,EACT,IAAI,CACL,CAAC;gBAEF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjE,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;wBACjC,WAAW,EAAE,aAAa,CAAC,MAAM;wBACjC,SAAS,EAAE,WAAW,CAAC,MAAM;qBAC9B,CAAC,CAAC;oBAEH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC9B,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBACpC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;wBACzB,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;wBACnC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC;oBACD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;wBACvB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;wBAC/B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC/B,CAAC;oBACD,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,OAAO,CACd,GAAW,CAAC,OAAO,EACnB,GAAW,CAAC,MAAM,EAClB,GAAW,CAAC,IAAI,EAChB,GAAW,CAAC,QAAQ,CACtB,CAAC;gBACJ,CAAC;qBAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;OAEG;IACW,QAAQ;6DAAC,EACrB,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,SAAS,GACY;YACrB,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,YAAY,CAAC;oBAC1B,QAAQ,EAAE,QAAQ,IAAI,EAAE;oBACxB,QAAQ,EAAE,QAAQ,IAAI,EAAE;oBACxB,MAAM,EAAE;wBACN,IAAI,EAAE,IAAI,IAAI,EAAE;wBAChB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAChC;iBACF,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC;gBAEpE,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACvB,OAAO,MAAkB,CAAC;YAC5B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEK,KAAK;;YACT,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;KAAA;CACF"}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
export interface Mappable {
|
|
2
2
|
get(key: string): Promise<string | null>;
|
|
3
3
|
set(key: string, value: string, type?: string, ttl?: number): Promise<string | null>;
|
|
4
|
+
lRange(key: string, start: number, stop: number): Promise<string[]>;
|
|
5
|
+
rPush(key: string, elements: string[]): Promise<number>;
|
|
6
|
+
expire(key: string, seconds: number): Promise<number | boolean>;
|
|
7
|
+
del(...keys: string[]): Promise<number>;
|
|
8
|
+
multi(): CacheTransaction;
|
|
9
|
+
}
|
|
10
|
+
export interface CacheTransaction {
|
|
11
|
+
del(...keys: string[]): CacheTransaction;
|
|
12
|
+
rPush(key: string, elements: string[]): CacheTransaction;
|
|
13
|
+
expire(key: string, seconds: number): CacheTransaction;
|
|
14
|
+
set(key: string, value: string, type?: string, ttl?: number): CacheTransaction;
|
|
15
|
+
exec(): Promise<unknown>;
|
|
4
16
|
}
|
|
5
17
|
export interface CacheCredentials {
|
|
6
18
|
username: string;
|