@arikajs/cache 0.0.4 → 0.0.6
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/README.md +62 -118
- package/dist/CacheLock.d.ts +38 -0
- package/dist/CacheLock.d.ts.map +1 -0
- package/dist/CacheLock.js +100 -0
- package/dist/CacheLock.js.map +1 -0
- package/dist/CacheManager.d.ts +8 -1
- package/dist/CacheManager.d.ts.map +1 -1
- package/dist/CacheManager.js +17 -2
- package/dist/CacheManager.js.map +1 -1
- package/dist/Contracts/Store.d.ts +4 -0
- package/dist/Contracts/Store.d.ts.map +1 -1
- package/dist/Drivers/DatabaseDriver.d.ts +6 -1
- package/dist/Drivers/DatabaseDriver.d.ts.map +1 -1
- package/dist/Drivers/DatabaseDriver.js +70 -10
- package/dist/Drivers/DatabaseDriver.js.map +1 -1
- package/dist/Drivers/FileDriver.d.ts +19 -0
- package/dist/Drivers/FileDriver.d.ts.map +1 -0
- package/dist/Drivers/FileDriver.js +111 -0
- package/dist/Drivers/FileDriver.js.map +1 -0
- package/dist/Drivers/MemoryDriver.d.ts +4 -0
- package/dist/Drivers/MemoryDriver.d.ts.map +1 -1
- package/dist/Drivers/MemoryDriver.js +25 -0
- package/dist/Drivers/MemoryDriver.js.map +1 -1
- package/dist/Drivers/RedisDriver.d.ts +4 -0
- package/dist/Drivers/RedisDriver.d.ts.map +1 -1
- package/dist/Drivers/RedisDriver.js +46 -0
- package/dist/Drivers/RedisDriver.js.map +1 -1
- package/dist/Repository.d.ts +6 -0
- package/dist/Repository.d.ts.map +1 -1
- package/dist/Repository.js +42 -0
- package/dist/Repository.js.map +1 -1
- package/dist/TagSet.d.ts +24 -0
- package/dist/TagSet.d.ts.map +1 -0
- package/dist/TagSet.js +46 -0
- package/dist/TagSet.js.map +1 -0
- package/dist/TaggedStore.d.ts +21 -0
- package/dist/TaggedStore.d.ts.map +1 -0
- package/dist/TaggedStore.js +100 -0
- package/dist/TaggedStore.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/src/CacheLock.d.ts +38 -0
- package/dist/src/CacheLock.d.ts.map +1 -0
- package/dist/src/CacheLock.js +100 -0
- package/dist/src/CacheLock.js.map +1 -0
- package/dist/src/CacheManager.d.ts +35 -0
- package/dist/src/CacheManager.d.ts.map +1 -0
- package/dist/src/CacheManager.js +79 -0
- package/dist/src/CacheManager.js.map +1 -0
- package/dist/src/Contracts/Store.d.ts +15 -0
- package/dist/src/Contracts/Store.d.ts.map +1 -0
- package/dist/src/Contracts/Store.js +3 -0
- package/dist/src/Contracts/Store.js.map +1 -0
- package/dist/src/Drivers/DatabaseDriver.d.ts +21 -0
- package/dist/src/Drivers/DatabaseDriver.d.ts.map +1 -0
- package/dist/src/Drivers/DatabaseDriver.js +146 -0
- package/dist/src/Drivers/DatabaseDriver.js.map +1 -0
- package/dist/src/Drivers/FileDriver.d.ts +19 -0
- package/dist/src/Drivers/FileDriver.d.ts.map +1 -0
- package/dist/src/Drivers/FileDriver.js +111 -0
- package/dist/src/Drivers/FileDriver.js.map +1 -0
- package/dist/src/Drivers/MemoryDriver.d.ts +22 -0
- package/dist/src/Drivers/MemoryDriver.d.ts.map +1 -0
- package/dist/src/Drivers/MemoryDriver.js +78 -0
- package/dist/src/Drivers/MemoryDriver.js.map +1 -0
- package/dist/src/Drivers/RedisDriver.d.ts +24 -0
- package/dist/src/Drivers/RedisDriver.d.ts.map +1 -0
- package/dist/src/Drivers/RedisDriver.js +124 -0
- package/dist/src/Drivers/RedisDriver.js.map +1 -0
- package/dist/src/Repository.d.ts +25 -0
- package/dist/src/Repository.d.ts.map +1 -0
- package/dist/src/Repository.js +110 -0
- package/dist/src/Repository.js.map +1 -0
- package/dist/src/TagSet.d.ts +24 -0
- package/dist/src/TagSet.d.ts.map +1 -0
- package/dist/src/TagSet.js +46 -0
- package/dist/src/TagSet.js.map +1 -0
- package/dist/src/TaggedStore.d.ts +21 -0
- package/dist/src/TaggedStore.d.ts.map +1 -0
- package/dist/src/TaggedStore.js +100 -0
- package/dist/src/TaggedStore.js.map +1 -0
- package/dist/src/index.d.ts +29 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +46 -0
- package/dist/src/index.js.map +1 -0
- package/dist/tests/Cache.test.d.ts +2 -0
- package/dist/tests/Cache.test.d.ts.map +1 -0
- package/dist/tests/Cache.test.js +126 -0
- package/dist/tests/Cache.test.js.map +1 -0
- package/package.json +7 -5
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Store } from './Contracts/Store';
|
|
2
|
+
import { TagSet } from './TagSet';
|
|
3
|
+
export declare class TaggedStore implements Store {
|
|
4
|
+
protected store: Store;
|
|
5
|
+
protected tags: TagSet;
|
|
6
|
+
constructor(store: Store, tags: TagSet);
|
|
7
|
+
protected prefixKey(key: string): Promise<string>;
|
|
8
|
+
get(key: string): Promise<any>;
|
|
9
|
+
put(key: string, value: any, seconds: number): Promise<void>;
|
|
10
|
+
add(key: string, value: any, seconds: number): Promise<boolean>;
|
|
11
|
+
increment(key: string, value?: number): Promise<number>;
|
|
12
|
+
decrement(key: string, value?: number): Promise<number>;
|
|
13
|
+
forever(key: string, value: any): Promise<void>;
|
|
14
|
+
forget(key: string): Promise<void>;
|
|
15
|
+
flush(): Promise<void>;
|
|
16
|
+
getPrefix(): string;
|
|
17
|
+
getMultiple(keys: string[]): Promise<Record<string, any>>;
|
|
18
|
+
putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
|
|
19
|
+
forgetMultiple(keys: string[]): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=TaggedStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaggedStore.d.ts","sourceRoot":"","sources":["../src/TaggedStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,WAAY,YAAW,KAAK;IACzB,SAAS,CAAC,KAAK,EAAE,KAAK;IAAE,SAAS,CAAC,IAAI,EAAE,MAAM;gBAApC,KAAK,EAAE,KAAK,EAAY,IAAI,EAAE,MAAM;cAE1C,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,IAAI,MAAM;IAIb,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IA2BzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAa7D"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TaggedStore = void 0;
|
|
4
|
+
class TaggedStore {
|
|
5
|
+
constructor(store, tags) {
|
|
6
|
+
this.store = store;
|
|
7
|
+
this.tags = tags;
|
|
8
|
+
}
|
|
9
|
+
async prefixKey(key) {
|
|
10
|
+
return (await this.tags.getNamespace()) + key;
|
|
11
|
+
}
|
|
12
|
+
async get(key) {
|
|
13
|
+
return await this.store.get(await this.prefixKey(key));
|
|
14
|
+
}
|
|
15
|
+
async put(key, value, seconds) {
|
|
16
|
+
await this.store.put(await this.prefixKey(key), value, seconds);
|
|
17
|
+
}
|
|
18
|
+
async add(key, value, seconds) {
|
|
19
|
+
if (this.store.add) {
|
|
20
|
+
return await this.store.add(await this.prefixKey(key), value, seconds);
|
|
21
|
+
}
|
|
22
|
+
if (await this.get(key) !== null)
|
|
23
|
+
return false;
|
|
24
|
+
await this.put(key, value, seconds);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
async increment(key, value = 1) {
|
|
28
|
+
return await this.store.increment(await this.prefixKey(key), value);
|
|
29
|
+
}
|
|
30
|
+
async decrement(key, value = 1) {
|
|
31
|
+
return await this.store.decrement(await this.prefixKey(key), value);
|
|
32
|
+
}
|
|
33
|
+
async forever(key, value) {
|
|
34
|
+
await this.store.forever(await this.prefixKey(key), value);
|
|
35
|
+
}
|
|
36
|
+
async forget(key) {
|
|
37
|
+
await this.store.forget(await this.prefixKey(key));
|
|
38
|
+
}
|
|
39
|
+
async flush() {
|
|
40
|
+
await this.tags.reset();
|
|
41
|
+
}
|
|
42
|
+
getPrefix() {
|
|
43
|
+
return this.store.getPrefix();
|
|
44
|
+
}
|
|
45
|
+
async getMultiple(keys) {
|
|
46
|
+
const namespace = await this.tags.getNamespace();
|
|
47
|
+
const prefixedKeys = keys.map(k => namespace + k);
|
|
48
|
+
if (this.store.getMultiple) {
|
|
49
|
+
const results = await this.store.getMultiple(prefixedKeys);
|
|
50
|
+
const mapped = {};
|
|
51
|
+
for (const [key, value] of Object.entries(results)) {
|
|
52
|
+
// If the underlying store returns prefixed keys (e.g. database driver), it might not include namespace.
|
|
53
|
+
// We just rely on mapping index-to-index since we pass exactly prefixedKeys.
|
|
54
|
+
}
|
|
55
|
+
// A safer approach: fetch everything and rebuild map
|
|
56
|
+
const finalMap = {};
|
|
57
|
+
for (let i = 0; i < keys.length; i++) {
|
|
58
|
+
finalMap[keys[i]] = results[prefixedKeys[i]];
|
|
59
|
+
}
|
|
60
|
+
return finalMap;
|
|
61
|
+
}
|
|
62
|
+
// Fallback for custom drivers
|
|
63
|
+
const fallback = {};
|
|
64
|
+
for (const key of keys) {
|
|
65
|
+
fallback[key] = await this.get(key);
|
|
66
|
+
}
|
|
67
|
+
return fallback;
|
|
68
|
+
}
|
|
69
|
+
async putMultiple(values, seconds) {
|
|
70
|
+
const namespace = await this.tags.getNamespace();
|
|
71
|
+
const prefixedValues = {};
|
|
72
|
+
for (const [key, value] of Object.entries(values)) {
|
|
73
|
+
prefixedValues[namespace + key] = value;
|
|
74
|
+
}
|
|
75
|
+
if (this.store.putMultiple) {
|
|
76
|
+
await this.store.putMultiple(prefixedValues, seconds);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Fallback
|
|
80
|
+
for (const [k, v] of Object.entries(prefixedValues)) {
|
|
81
|
+
await this.store.put(k, v, seconds);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async forgetMultiple(keys) {
|
|
86
|
+
const namespace = await this.tags.getNamespace();
|
|
87
|
+
const prefixedKeys = keys.map(k => namespace + k);
|
|
88
|
+
if (this.store.forgetMultiple) {
|
|
89
|
+
await this.store.forgetMultiple(prefixedKeys);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// Fallback
|
|
93
|
+
for (const k of prefixedKeys) {
|
|
94
|
+
await this.store.forget(k);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.TaggedStore = TaggedStore;
|
|
100
|
+
//# sourceMappingURL=TaggedStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaggedStore.js","sourceRoot":"","sources":["../src/TaggedStore.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export declare class Cache {
|
|
|
16
16
|
static pull(key: string, defaultValue?: any): Promise<any>;
|
|
17
17
|
static remember(key: string, seconds: number, callback: () => Promise<any>): Promise<any>;
|
|
18
18
|
static rememberForever(key: string, callback: () => Promise<any>): Promise<any>;
|
|
19
|
+
static getMultiple(keys: string[]): Promise<Record<string, any>>;
|
|
20
|
+
static putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
|
|
21
|
+
static forgetMultiple(keys: string[]): Promise<void>;
|
|
22
|
+
static lock(name: string, seconds?: number, owner?: string | null): import("./CacheLock").CacheLock;
|
|
23
|
+
static tags(names: string | string[]): import("./Repository").Repository;
|
|
19
24
|
}
|
|
20
25
|
export { CacheManager, Store };
|
|
21
26
|
export { Repository } from './Repository';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,qBAAa,KAAK;WACA,UAAU,CAAC,OAAO,EAAE,YAAY;IAI9C,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY;WAO7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;WAIb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,GAAG,CAAC,GAAG,EAAE,MAAM;WACf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;WAC/B,MAAM,CAAC,GAAG,EAAE,MAAM;WAClB,KAAK;WACL,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;WACnE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,qBAAa,KAAK;WACA,UAAU,CAAC,OAAO,EAAE,YAAY;IAI9C,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY;WAO7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM;WAIb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,GAAG,CAAC,GAAG,EAAE,MAAM;WACf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;WAC/B,MAAM,CAAC,GAAG,EAAE,MAAM;WAClB,KAAK;WACL,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;WACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;WAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;WAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;WACnE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;WAGzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;WAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM;WACxD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;WACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;WACnE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAC9C;AAED,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -29,6 +29,12 @@ class Cache {
|
|
|
29
29
|
static async pull(key, defaultValue = null) { return this.getManager().pull(key, defaultValue); }
|
|
30
30
|
static async remember(key, seconds, callback) { return this.getManager().remember(key, seconds, callback); }
|
|
31
31
|
static async rememberForever(key, callback) { return this.getManager().rememberForever(key, callback); }
|
|
32
|
+
// Enterprise methods
|
|
33
|
+
static async getMultiple(keys) { return this.getManager().getMultiple(keys); }
|
|
34
|
+
static async putMultiple(values, seconds) { return this.getManager().putMultiple(values, seconds); }
|
|
35
|
+
static async forgetMultiple(keys) { return this.getManager().forgetMultiple(keys); }
|
|
36
|
+
static lock(name, seconds = 0, owner = null) { return this.getManager().lock(name, seconds, owner); }
|
|
37
|
+
static tags(names) { return this.getManager().tags(names); }
|
|
32
38
|
}
|
|
33
39
|
exports.Cache = Cache;
|
|
34
40
|
var Repository_1 = require("./Repository");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,iDAA8C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Store } from './Contracts/Store';
|
|
2
|
+
export declare class CacheLock {
|
|
3
|
+
protected store: Store;
|
|
4
|
+
protected name: string;
|
|
5
|
+
protected seconds: number;
|
|
6
|
+
protected ownerId: string | null;
|
|
7
|
+
constructor(store: Store, name: string, seconds: number, ownerId?: string | null);
|
|
8
|
+
/**
|
|
9
|
+
* Attempt to acquire the lock. If a callback is provided, it will be executed
|
|
10
|
+
* and the lock will automatically be released afterward.
|
|
11
|
+
*/
|
|
12
|
+
get(callback?: () => Promise<any>): Promise<any>;
|
|
13
|
+
/**
|
|
14
|
+
* Atomically attempt to acquire the lock.
|
|
15
|
+
*/
|
|
16
|
+
acquire(): Promise<boolean>;
|
|
17
|
+
/**
|
|
18
|
+
* Release the lock, but only if we still own it.
|
|
19
|
+
*/
|
|
20
|
+
release(): Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Force the lock to release, discarding ownership checks.
|
|
23
|
+
*/
|
|
24
|
+
forceRelease(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Attempt to acquire the lock, blocking for a given number of seconds.
|
|
27
|
+
*/
|
|
28
|
+
block(seconds: number, callback?: () => Promise<any>): Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Get the current owner ID assigned to this lock.
|
|
31
|
+
*/
|
|
32
|
+
owner(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Generate a unique identifier for the lock owner.
|
|
35
|
+
*/
|
|
36
|
+
protected generateOwnerId(): string;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=CacheLock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheLock.d.ts","sourceRoot":"","sources":["../../src/CacheLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qBAAa,SAAS;IAEd,SAAS,CAAC,KAAK,EAAE,KAAK;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM;IACtB,SAAS,CAAC,OAAO,EAAE,MAAM;IACzB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;gBAHtB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,GAAG,IAAW;IAO3C;;;OAGG;IACU,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAc7D;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAaxC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxC;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;OAEG;IACU,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBhF;;OAEG;IACI,KAAK,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,MAAM;CAGtC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheLock = void 0;
|
|
4
|
+
class CacheLock {
|
|
5
|
+
constructor(store, name, seconds, ownerId = null) {
|
|
6
|
+
this.store = store;
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.seconds = seconds;
|
|
9
|
+
this.ownerId = ownerId;
|
|
10
|
+
if (!this.ownerId) {
|
|
11
|
+
this.ownerId = this.generateOwnerId();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Attempt to acquire the lock. If a callback is provided, it will be executed
|
|
16
|
+
* and the lock will automatically be released afterward.
|
|
17
|
+
*/
|
|
18
|
+
async get(callback) {
|
|
19
|
+
const acquired = await this.acquire();
|
|
20
|
+
if (acquired && callback) {
|
|
21
|
+
try {
|
|
22
|
+
return await callback();
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
await this.release();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return acquired;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Atomically attempt to acquire the lock.
|
|
32
|
+
*/
|
|
33
|
+
async acquire() {
|
|
34
|
+
if (!this.store.add) {
|
|
35
|
+
// Fallback for custom drivers that don't implement atomic add.
|
|
36
|
+
// THIS IS NOT COMPLETELY ATOMIC in distributed systems.
|
|
37
|
+
if (await this.store.get(this.name) !== null) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
await this.store.put(this.name, this.ownerId, this.seconds);
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return await this.store.add(this.name, this.ownerId, this.seconds);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Release the lock, but only if we still own it.
|
|
47
|
+
*/
|
|
48
|
+
async release() {
|
|
49
|
+
const currentOwner = await this.store.get(this.name);
|
|
50
|
+
if (currentOwner === this.ownerId) {
|
|
51
|
+
await this.store.forget(this.name);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Force the lock to release, discarding ownership checks.
|
|
58
|
+
*/
|
|
59
|
+
async forceRelease() {
|
|
60
|
+
await this.store.forget(this.name);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Attempt to acquire the lock, blocking for a given number of seconds.
|
|
64
|
+
*/
|
|
65
|
+
async block(seconds, callback) {
|
|
66
|
+
const startingTime = Date.now();
|
|
67
|
+
while (true) {
|
|
68
|
+
if (await this.acquire()) {
|
|
69
|
+
if (callback) {
|
|
70
|
+
try {
|
|
71
|
+
return await callback();
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
await this.release();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
if (Date.now() - startingTime >= seconds * 1000) {
|
|
80
|
+
throw new Error(`Could not acquire cache lock [${this.name}] within ${seconds} seconds.`);
|
|
81
|
+
}
|
|
82
|
+
// Sleep for 250ms before trying again
|
|
83
|
+
await new Promise(resolve => setTimeout(resolve, 250));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the current owner ID assigned to this lock.
|
|
88
|
+
*/
|
|
89
|
+
owner() {
|
|
90
|
+
return this.ownerId;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Generate a unique identifier for the lock owner.
|
|
94
|
+
*/
|
|
95
|
+
generateOwnerId() {
|
|
96
|
+
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.CacheLock = CacheLock;
|
|
100
|
+
//# sourceMappingURL=CacheLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheLock.js","sourceRoot":"","sources":["../../src/CacheLock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Repository } from './Repository';
|
|
2
|
+
import { Store } from './Contracts/Store';
|
|
3
|
+
export declare class CacheManager {
|
|
4
|
+
protected config: any;
|
|
5
|
+
protected stores: Map<string, Repository>;
|
|
6
|
+
protected customCreators: Map<string, (config: any) => Store>;
|
|
7
|
+
protected database: any;
|
|
8
|
+
protected basePath: string;
|
|
9
|
+
constructor(config: any, database?: any, basePath?: string);
|
|
10
|
+
store(name?: string): Repository;
|
|
11
|
+
protected resolve(name: string): Repository;
|
|
12
|
+
protected createMemoryDriver(): Store;
|
|
13
|
+
protected createDatabaseDriver(config: any): Store;
|
|
14
|
+
protected createRedisDriver(config: any): Store;
|
|
15
|
+
protected createFileDriver(config: any): Store;
|
|
16
|
+
extend(driver: string, callback: (config: any) => Store): this;
|
|
17
|
+
get(key: string, defaultValue?: any): Promise<any>;
|
|
18
|
+
put(key: string, value: any, seconds: number): Promise<void>;
|
|
19
|
+
has(key: string): Promise<boolean>;
|
|
20
|
+
forever(key: string, value: any): Promise<void>;
|
|
21
|
+
forget(key: string): Promise<void>;
|
|
22
|
+
flush(): Promise<void>;
|
|
23
|
+
increment(key: string, value?: number): Promise<number>;
|
|
24
|
+
decrement(key: string, value?: number): Promise<number>;
|
|
25
|
+
add(key: string, value: any, seconds: number): Promise<boolean>;
|
|
26
|
+
pull(key: string, defaultValue?: any): Promise<any>;
|
|
27
|
+
remember(key: string, seconds: number, callback: () => Promise<any>): Promise<any>;
|
|
28
|
+
rememberForever(key: string, callback: () => Promise<any>): Promise<any>;
|
|
29
|
+
getMultiple(keys: string[]): Promise<Record<string, any>>;
|
|
30
|
+
putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
|
|
31
|
+
forgetMultiple(keys: string[]): Promise<void>;
|
|
32
|
+
lock(name: string, seconds?: number, owner?: string | null): import("./CacheLock").CacheLock;
|
|
33
|
+
tags(names: string | string[]): Repository;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=CacheManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/CacheManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qBAAa,YAAY;IAMT,SAAS,CAAC,MAAM,EAAE,GAAG;IALjC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IACtD,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAa;IAC1E,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC;IACxB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAsB;IAK5E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IAUvC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAoB3C,SAAS,CAAC,kBAAkB,IAAI,KAAK;IAIrC,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK;IASlD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK;IAO/C,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK;IAYvC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,KAAK,GAAG,IAAI;IAMxD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM;IACf,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAC/B,MAAM,CAAC,GAAG,EAAE,MAAM;IAClB,KAAK;IACL,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;IACxC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU;IACxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM;IAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,GAAU;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IACnE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC;IAGzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;IAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM;IACxD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAU,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW;IACnE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CACvC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CacheManager = void 0;
|
|
4
|
+
const Repository_1 = require("./Repository");
|
|
5
|
+
const MemoryDriver_1 = require("./Drivers/MemoryDriver");
|
|
6
|
+
const DatabaseDriver_1 = require("./Drivers/DatabaseDriver");
|
|
7
|
+
const RedisDriver_1 = require("./Drivers/RedisDriver");
|
|
8
|
+
const FileDriver_1 = require("./Drivers/FileDriver");
|
|
9
|
+
class CacheManager {
|
|
10
|
+
constructor(config, database, basePath = process.cwd()) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.stores = new Map();
|
|
13
|
+
this.customCreators = new Map();
|
|
14
|
+
this.database = database;
|
|
15
|
+
this.basePath = basePath;
|
|
16
|
+
}
|
|
17
|
+
store(name) {
|
|
18
|
+
const storeName = name || this.config.default;
|
|
19
|
+
if (!this.stores.has(storeName)) {
|
|
20
|
+
this.stores.set(storeName, this.resolve(storeName));
|
|
21
|
+
}
|
|
22
|
+
return this.stores.get(storeName);
|
|
23
|
+
}
|
|
24
|
+
resolve(name) {
|
|
25
|
+
const config = this.config.stores[name];
|
|
26
|
+
if (!config) {
|
|
27
|
+
throw new Error(`Cache store [${name}] is not defined.`);
|
|
28
|
+
}
|
|
29
|
+
if (this.customCreators.has(config.driver)) {
|
|
30
|
+
return new Repository_1.Repository(this.customCreators.get(config.driver)(config));
|
|
31
|
+
}
|
|
32
|
+
const driverMethod = `create${config.driver.charAt(0).toUpperCase() + config.driver.slice(1)}Driver`;
|
|
33
|
+
if (typeof this[driverMethod] === 'function') {
|
|
34
|
+
return new Repository_1.Repository(this[driverMethod](config));
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`Driver [${config.driver}] is not supported.`);
|
|
37
|
+
}
|
|
38
|
+
createMemoryDriver() {
|
|
39
|
+
return new MemoryDriver_1.MemoryDriver();
|
|
40
|
+
}
|
|
41
|
+
createDatabaseDriver(config) {
|
|
42
|
+
return new DatabaseDriver_1.DatabaseDriver(this.database, config.table, this.config.prefix || '', config.connection);
|
|
43
|
+
}
|
|
44
|
+
createRedisDriver(config) {
|
|
45
|
+
return new RedisDriver_1.RedisDriver(config, this.config.prefix || '');
|
|
46
|
+
}
|
|
47
|
+
createFileDriver(config) {
|
|
48
|
+
const path = require('path');
|
|
49
|
+
const directory = path.isAbsolute(config.path)
|
|
50
|
+
? config.path
|
|
51
|
+
: path.resolve(this.basePath, config.path);
|
|
52
|
+
return new FileDriver_1.FileDriver(directory, this.config.prefix || '');
|
|
53
|
+
}
|
|
54
|
+
extend(driver, callback) {
|
|
55
|
+
this.customCreators.set(driver, callback);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
// Proxy common methods to default store
|
|
59
|
+
async get(key, defaultValue = null) { return this.store().get(key, defaultValue); }
|
|
60
|
+
async put(key, value, seconds) { return this.store().put(key, value, seconds); }
|
|
61
|
+
async has(key) { return this.store().has(key); }
|
|
62
|
+
async forever(key, value) { return this.store().forever(key, value); }
|
|
63
|
+
async forget(key) { return this.store().forget(key); }
|
|
64
|
+
async flush() { return this.store().flush(); }
|
|
65
|
+
async increment(key, value = 1) { return this.store().increment(key, value); }
|
|
66
|
+
async decrement(key, value = 1) { return this.store().decrement(key, value); }
|
|
67
|
+
async add(key, value, seconds) { return this.store().add(key, value, seconds); }
|
|
68
|
+
async pull(key, defaultValue = null) { return this.store().pull(key, defaultValue); }
|
|
69
|
+
async remember(key, seconds, callback) { return this.store().remember(key, seconds, callback); }
|
|
70
|
+
async rememberForever(key, callback) { return this.store().rememberForever(key, callback); }
|
|
71
|
+
// Enterprise methods
|
|
72
|
+
async getMultiple(keys) { return this.store().getMultiple(keys); }
|
|
73
|
+
async putMultiple(values, seconds) { return this.store().putMultiple(values, seconds); }
|
|
74
|
+
async forgetMultiple(keys) { return this.store().forgetMultiple(keys); }
|
|
75
|
+
lock(name, seconds = 0, owner = null) { return this.store().lock(name, seconds, owner); }
|
|
76
|
+
tags(names) { return this.store().tags(names); }
|
|
77
|
+
}
|
|
78
|
+
exports.CacheManager = CacheManager;
|
|
79
|
+
//# sourceMappingURL=CacheManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../src/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface Store {
|
|
2
|
+
get(key: string): Promise<any>;
|
|
3
|
+
put(key: string, value: any, seconds: number): Promise<void>;
|
|
4
|
+
increment(key: string, value?: number): Promise<number>;
|
|
5
|
+
decrement(key: string, value?: number): Promise<number>;
|
|
6
|
+
forever(key: string, value: any): Promise<void>;
|
|
7
|
+
forget(key: string): Promise<void>;
|
|
8
|
+
flush(): Promise<void>;
|
|
9
|
+
getPrefix(): string;
|
|
10
|
+
add?(key: string, value: any, seconds: number): Promise<boolean>;
|
|
11
|
+
getMultiple?(keys: string[]): Promise<Record<string, any>>;
|
|
12
|
+
putMultiple?(values: Record<string, any>, seconds: number): Promise<void>;
|
|
13
|
+
forgetMultiple?(keys: string[]): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../../src/Contracts/Store.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,KAAK;IAClB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,IAAI,MAAM,CAAC;IAGpB,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,cAAc,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../src/Contracts/Store.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Store } from '../Contracts/Store';
|
|
2
|
+
export declare class DatabaseDriver implements Store {
|
|
3
|
+
private database;
|
|
4
|
+
private table;
|
|
5
|
+
private prefix;
|
|
6
|
+
private connection?;
|
|
7
|
+
constructor(database: any, table: string, prefix?: string, connection?: string | undefined);
|
|
8
|
+
get(key: string): Promise<any>;
|
|
9
|
+
put(key: string, value: any, seconds: number): Promise<void>;
|
|
10
|
+
increment(key: string, value?: number): Promise<number>;
|
|
11
|
+
decrement(key: string, value?: number): Promise<number>;
|
|
12
|
+
forever(key: string, value: any): Promise<void>;
|
|
13
|
+
forget(key: string): Promise<void>;
|
|
14
|
+
flush(): Promise<void>;
|
|
15
|
+
add(key: string, value: any, seconds: number): Promise<boolean>;
|
|
16
|
+
getMultiple(keys: string[]): Promise<Record<string, any>>;
|
|
17
|
+
putMultiple(values: Record<string, any>, seconds: number): Promise<void>;
|
|
18
|
+
forgetMultiple(keys: string[]): Promise<void>;
|
|
19
|
+
getPrefix(): string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=DatabaseDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatabaseDriver.d.ts","sourceRoot":"","sources":["../../../src/Drivers/DatabaseDriver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,qBAAa,cAAe,YAAW,KAAK;IAEpC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU,CAAC;gBAHX,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAW,EACnB,UAAU,CAAC,EAAE,MAAM,YAAA;IAGlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B/D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IA2BzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,SAAS,IAAI,MAAM;CAG7B"}
|