@arikajs/cache 0.0.3 → 0.0.5

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.
Files changed (92) hide show
  1. package/README.md +62 -118
  2. package/dist/CacheLock.d.ts +38 -0
  3. package/dist/CacheLock.d.ts.map +1 -0
  4. package/dist/CacheLock.js +100 -0
  5. package/dist/CacheLock.js.map +1 -0
  6. package/dist/CacheManager.d.ts +8 -1
  7. package/dist/CacheManager.d.ts.map +1 -1
  8. package/dist/CacheManager.js +17 -2
  9. package/dist/CacheManager.js.map +1 -1
  10. package/dist/Contracts/Store.d.ts +4 -0
  11. package/dist/Contracts/Store.d.ts.map +1 -1
  12. package/dist/Drivers/DatabaseDriver.d.ts +6 -1
  13. package/dist/Drivers/DatabaseDriver.d.ts.map +1 -1
  14. package/dist/Drivers/DatabaseDriver.js +70 -10
  15. package/dist/Drivers/DatabaseDriver.js.map +1 -1
  16. package/dist/Drivers/FileDriver.d.ts +19 -0
  17. package/dist/Drivers/FileDriver.d.ts.map +1 -0
  18. package/dist/Drivers/FileDriver.js +111 -0
  19. package/dist/Drivers/FileDriver.js.map +1 -0
  20. package/dist/Drivers/MemoryDriver.d.ts +4 -0
  21. package/dist/Drivers/MemoryDriver.d.ts.map +1 -1
  22. package/dist/Drivers/MemoryDriver.js +25 -0
  23. package/dist/Drivers/MemoryDriver.js.map +1 -1
  24. package/dist/Drivers/RedisDriver.d.ts +4 -0
  25. package/dist/Drivers/RedisDriver.d.ts.map +1 -1
  26. package/dist/Drivers/RedisDriver.js +46 -0
  27. package/dist/Drivers/RedisDriver.js.map +1 -1
  28. package/dist/Repository.d.ts +6 -0
  29. package/dist/Repository.d.ts.map +1 -1
  30. package/dist/Repository.js +42 -0
  31. package/dist/Repository.js.map +1 -1
  32. package/dist/TagSet.d.ts +24 -0
  33. package/dist/TagSet.d.ts.map +1 -0
  34. package/dist/TagSet.js +46 -0
  35. package/dist/TagSet.js.map +1 -0
  36. package/dist/TaggedStore.d.ts +21 -0
  37. package/dist/TaggedStore.d.ts.map +1 -0
  38. package/dist/TaggedStore.js +100 -0
  39. package/dist/TaggedStore.js.map +1 -0
  40. package/dist/index.d.ts +5 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +6 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/src/CacheLock.d.ts +38 -0
  45. package/dist/src/CacheLock.d.ts.map +1 -0
  46. package/dist/src/CacheLock.js +100 -0
  47. package/dist/src/CacheLock.js.map +1 -0
  48. package/dist/src/CacheManager.d.ts +35 -0
  49. package/dist/src/CacheManager.d.ts.map +1 -0
  50. package/dist/src/CacheManager.js +79 -0
  51. package/dist/src/CacheManager.js.map +1 -0
  52. package/dist/src/Contracts/Store.d.ts +15 -0
  53. package/dist/src/Contracts/Store.d.ts.map +1 -0
  54. package/dist/src/Contracts/Store.js +3 -0
  55. package/dist/src/Contracts/Store.js.map +1 -0
  56. package/dist/src/Drivers/DatabaseDriver.d.ts +21 -0
  57. package/dist/src/Drivers/DatabaseDriver.d.ts.map +1 -0
  58. package/dist/src/Drivers/DatabaseDriver.js +146 -0
  59. package/dist/src/Drivers/DatabaseDriver.js.map +1 -0
  60. package/dist/src/Drivers/FileDriver.d.ts +19 -0
  61. package/dist/src/Drivers/FileDriver.d.ts.map +1 -0
  62. package/dist/src/Drivers/FileDriver.js +111 -0
  63. package/dist/src/Drivers/FileDriver.js.map +1 -0
  64. package/dist/src/Drivers/MemoryDriver.d.ts +22 -0
  65. package/dist/src/Drivers/MemoryDriver.d.ts.map +1 -0
  66. package/dist/src/Drivers/MemoryDriver.js +78 -0
  67. package/dist/src/Drivers/MemoryDriver.js.map +1 -0
  68. package/dist/src/Drivers/RedisDriver.d.ts +24 -0
  69. package/dist/src/Drivers/RedisDriver.d.ts.map +1 -0
  70. package/dist/src/Drivers/RedisDriver.js +124 -0
  71. package/dist/src/Drivers/RedisDriver.js.map +1 -0
  72. package/dist/src/Repository.d.ts +25 -0
  73. package/dist/src/Repository.d.ts.map +1 -0
  74. package/dist/src/Repository.js +110 -0
  75. package/dist/src/Repository.js.map +1 -0
  76. package/dist/src/TagSet.d.ts +24 -0
  77. package/dist/src/TagSet.d.ts.map +1 -0
  78. package/dist/src/TagSet.js +46 -0
  79. package/dist/src/TagSet.js.map +1 -0
  80. package/dist/src/TaggedStore.d.ts +21 -0
  81. package/dist/src/TaggedStore.d.ts.map +1 -0
  82. package/dist/src/TaggedStore.js +100 -0
  83. package/dist/src/TaggedStore.js.map +1 -0
  84. package/dist/src/index.d.ts +29 -0
  85. package/dist/src/index.d.ts.map +1 -0
  86. package/dist/src/index.js +46 -0
  87. package/dist/src/index.js.map +1 -0
  88. package/dist/tests/Cache.test.d.ts +2 -0
  89. package/dist/tests/Cache.test.d.ts.map +1 -0
  90. package/dist/tests/Cache.test.js +126 -0
  91. package/dist/tests/Cache.test.js.map +1 -0
  92. package/package.json +7 -5
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Repository = void 0;
4
+ const CacheLock_1 = require("./CacheLock");
5
+ const TagSet_1 = require("./TagSet");
6
+ const TaggedStore_1 = require("./TaggedStore");
7
+ class Repository {
8
+ constructor(store) {
9
+ this.store = store;
10
+ }
11
+ async get(key, defaultValue = null) {
12
+ const value = await this.store.get(key);
13
+ return value !== null ? value : defaultValue;
14
+ }
15
+ async has(key) {
16
+ return (await this.get(key)) !== null;
17
+ }
18
+ async put(key, value, seconds) {
19
+ await this.store.put(key, value, seconds);
20
+ }
21
+ async add(key, value, seconds) {
22
+ if (await this.has(key)) {
23
+ return false;
24
+ }
25
+ await this.put(key, value, seconds);
26
+ return true;
27
+ }
28
+ async increment(key, value = 1) {
29
+ return this.store.increment(key, value);
30
+ }
31
+ async decrement(key, value = 1) {
32
+ return this.store.decrement(key, value);
33
+ }
34
+ async forever(key, value) {
35
+ await this.store.forever(key, value);
36
+ }
37
+ async remember(key, seconds, callback) {
38
+ let value = await this.get(key);
39
+ if (value !== null) {
40
+ return value;
41
+ }
42
+ value = await callback();
43
+ await this.put(key, value, seconds);
44
+ return value;
45
+ }
46
+ async rememberForever(key, callback) {
47
+ let value = await this.get(key);
48
+ if (value !== null) {
49
+ return value;
50
+ }
51
+ value = await callback();
52
+ await this.forever(key, value);
53
+ return value;
54
+ }
55
+ async pull(key, defaultValue = null) {
56
+ const value = await this.get(key, defaultValue);
57
+ await this.forget(key);
58
+ return value;
59
+ }
60
+ async forget(key) {
61
+ await this.store.forget(key);
62
+ }
63
+ async flush() {
64
+ await this.store.flush();
65
+ }
66
+ async getMultiple(keys) {
67
+ if (keys.length === 0)
68
+ return {};
69
+ if (this.store.getMultiple) {
70
+ return await this.store.getMultiple(keys);
71
+ }
72
+ const results = {};
73
+ for (const key of keys) {
74
+ results[key] = await this.get(key);
75
+ }
76
+ return results;
77
+ }
78
+ async putMultiple(values, seconds) {
79
+ if (Object.keys(values).length === 0)
80
+ return;
81
+ if (this.store.putMultiple) {
82
+ return await this.store.putMultiple(values, seconds);
83
+ }
84
+ for (const [key, value] of Object.entries(values)) {
85
+ await this.put(key, value, seconds);
86
+ }
87
+ }
88
+ async forgetMultiple(keys) {
89
+ if (keys.length === 0)
90
+ return;
91
+ if (this.store.forgetMultiple) {
92
+ return await this.store.forgetMultiple(keys);
93
+ }
94
+ for (const key of keys) {
95
+ await this.forget(key);
96
+ }
97
+ }
98
+ lock(name, seconds = 0, owner = null) {
99
+ return new CacheLock_1.CacheLock(this.store, name, seconds, owner);
100
+ }
101
+ tags(names) {
102
+ const tagNames = Array.isArray(names) ? names : [names];
103
+ return new Repository(new TaggedStore_1.TaggedStore(this.store, new TagSet_1.TagSet(this.store, tagNames)));
104
+ }
105
+ getStore() {
106
+ return this.store;
107
+ }
108
+ }
109
+ exports.Repository = Repository;
110
+ //# sourceMappingURL=Repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Repository.js","sourceRoot":"","sources":["../../src/Repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Store } from './Contracts/Store';
2
+ export declare class TagSet {
3
+ protected store: Store;
4
+ protected names: string[];
5
+ constructor(store: Store, names: string[]);
6
+ /**
7
+ * Get a combined namespace prefix for all tags.
8
+ */
9
+ getNamespace(): Promise<string>;
10
+ /**
11
+ * Get or create entirely a unique identifier for a tag.
12
+ */
13
+ tagId(name: string): Promise<string>;
14
+ /**
15
+ * Reset all assigned tags by generating new IDs.
16
+ * This effectively orphans all previous cache entries.
17
+ */
18
+ reset(): Promise<void>;
19
+ /**
20
+ * Generate a unique tag ID.
21
+ */
22
+ protected generateId(): string;
23
+ }
24
+ //# sourceMappingURL=TagSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagSet.d.ts","sourceRoot":"","sources":["../../src/TagSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qBAAa,MAAM;IACH,SAAS,CAAC,KAAK,EAAE,KAAK;IAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE;gBAAvC,KAAK,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,EAAE;IAE7D;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAK5C;;OAEG;IACU,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYjD;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;CAGjC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TagSet = void 0;
4
+ class TagSet {
5
+ constructor(store, names) {
6
+ this.store = store;
7
+ this.names = names;
8
+ }
9
+ /**
10
+ * Get a combined namespace prefix for all tags.
11
+ */
12
+ async getNamespace() {
13
+ const ids = await Promise.all(this.names.map(name => this.tagId(name)));
14
+ return ids.join('|') + ':';
15
+ }
16
+ /**
17
+ * Get or create entirely a unique identifier for a tag.
18
+ */
19
+ async tagId(name) {
20
+ const key = `tag:${name}:key`;
21
+ let id = await this.store.get(key);
22
+ if (!id) {
23
+ id = this.generateId();
24
+ await this.store.forever(key, id);
25
+ }
26
+ return String(id);
27
+ }
28
+ /**
29
+ * Reset all assigned tags by generating new IDs.
30
+ * This effectively orphans all previous cache entries.
31
+ */
32
+ async reset() {
33
+ await Promise.all(this.names.map(async (name) => {
34
+ const key = `tag:${name}:key`;
35
+ await this.store.forever(key, this.generateId());
36
+ }));
37
+ }
38
+ /**
39
+ * Generate a unique tag ID.
40
+ */
41
+ generateId() {
42
+ return Date.now().toString(36) + Math.random().toString(36).substring(2, 15);
43
+ }
44
+ }
45
+ exports.TagSet = TagSet;
46
+ //# sourceMappingURL=TagSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagSet.js","sourceRoot":"","sources":["../../src/TagSet.ts"],"names":[],"mappings":";;;AAEA,MAAa,MAAM;IACf,YAAsB,KAAY,EAAY,KAAe;QAAvC,UAAK,GAAL,KAAK,CAAO;QAAY,UAAK,GAAL,KAAK,CAAU;IAAI,CAAC;IAElE;;OAEG;IACI,KAAK,CAAC,YAAY;QACrB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC;QAC9B,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAK;QACd,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;YAC1C,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;OAEG;IACO,UAAU;QAChB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACJ;AA3CD,wBA2CC"}
@@ -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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"}
@@ -0,0 +1,29 @@
1
+ import { CacheManager } from './CacheManager';
2
+ import { Store } from './Contracts/Store';
3
+ export declare class Cache {
4
+ static setManager(manager: CacheManager): void;
5
+ protected static getManager(): CacheManager;
6
+ static store(name?: string): import("./Repository").Repository;
7
+ static get(key: string, defaultValue?: any): Promise<any>;
8
+ static put(key: string, value: any, seconds: number): Promise<void>;
9
+ static has(key: string): Promise<boolean>;
10
+ static forever(key: string, value: any): Promise<void>;
11
+ static forget(key: string): Promise<void>;
12
+ static flush(): Promise<void>;
13
+ static increment(key: string, value?: number): Promise<number>;
14
+ static decrement(key: string, value?: number): Promise<number>;
15
+ static add(key: string, value: any, seconds: number): Promise<boolean>;
16
+ static pull(key: string, defaultValue?: any): Promise<any>;
17
+ static remember(key: string, seconds: number, callback: () => Promise<any>): Promise<any>;
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;
24
+ }
25
+ export { CacheManager, Store };
26
+ export { Repository } from './Repository';
27
+ export { MemoryDriver } from './Drivers/MemoryDriver';
28
+ export { DatabaseDriver } from './Drivers/DatabaseDriver';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseDriver = exports.MemoryDriver = exports.Repository = exports.CacheManager = exports.Cache = void 0;
4
+ const CacheManager_1 = require("./CacheManager");
5
+ Object.defineProperty(exports, "CacheManager", { enumerable: true, get: function () { return CacheManager_1.CacheManager; } });
6
+ let cacheManager;
7
+ class Cache {
8
+ static setManager(manager) {
9
+ cacheManager = manager;
10
+ }
11
+ static getManager() {
12
+ if (!cacheManager) {
13
+ throw new Error('Cache system not configured. Please use Cache.setManager() to configure.');
14
+ }
15
+ return cacheManager;
16
+ }
17
+ static store(name) {
18
+ return this.getManager().store(name);
19
+ }
20
+ static async get(key, defaultValue = null) { return this.getManager().get(key, defaultValue); }
21
+ static async put(key, value, seconds) { return this.getManager().put(key, value, seconds); }
22
+ static async has(key) { return this.getManager().has(key); }
23
+ static async forever(key, value) { return this.getManager().forever(key, value); }
24
+ static async forget(key) { return this.getManager().forget(key); }
25
+ static async flush() { return this.getManager().flush(); }
26
+ static async increment(key, value = 1) { return this.getManager().increment(key, value); }
27
+ static async decrement(key, value = 1) { return this.getManager().decrement(key, value); }
28
+ static async add(key, value, seconds) { return this.getManager().add(key, value, seconds); }
29
+ static async pull(key, defaultValue = null) { return this.getManager().pull(key, defaultValue); }
30
+ static async remember(key, seconds, callback) { return this.getManager().remember(key, seconds, callback); }
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); }
38
+ }
39
+ exports.Cache = Cache;
40
+ var Repository_1 = require("./Repository");
41
+ Object.defineProperty(exports, "Repository", { enumerable: true, get: function () { return Repository_1.Repository; } });
42
+ var MemoryDriver_1 = require("./Drivers/MemoryDriver");
43
+ Object.defineProperty(exports, "MemoryDriver", { enumerable: true, get: function () { return MemoryDriver_1.MemoryDriver; } });
44
+ var DatabaseDriver_1 = require("./Drivers/DatabaseDriver");
45
+ Object.defineProperty(exports, "DatabaseDriver", { enumerable: true, get: function () { return DatabaseDriver_1.DatabaseDriver; } });
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.test.d.ts","sourceRoot":"","sources":["../../tests/Cache.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const src_1 = require("../src/index");
9
+ (0, node_test_1.describe)('Cache', () => {
10
+ (0, node_test_1.before)(() => {
11
+ const config = {
12
+ default: 'memory',
13
+ stores: {
14
+ memory: {
15
+ driver: 'memory'
16
+ }
17
+ }
18
+ };
19
+ const manager = new src_1.CacheManager(config);
20
+ src_1.Cache.setManager(manager);
21
+ });
22
+ (0, node_test_1.it)('can put and get values from cache', async () => {
23
+ await src_1.Cache.put('test-key', 'test-value', 10);
24
+ const value = await src_1.Cache.get('test-key');
25
+ node_assert_1.default.strictEqual(value, 'test-value');
26
+ });
27
+ (0, node_test_1.it)('returns null for expired values', async () => {
28
+ await src_1.Cache.put('expired-key', 'expired-value', -1); // expired immediately
29
+ const value = await src_1.Cache.get('expired-key');
30
+ node_assert_1.default.strictEqual(value, null);
31
+ });
32
+ (0, node_test_1.it)('can use remember to fetch and store values', async () => {
33
+ let called = 0;
34
+ const callback = async () => {
35
+ called++;
36
+ return 'remembered-value';
37
+ };
38
+ const value1 = await src_1.Cache.remember('remember-key', 10, callback);
39
+ node_assert_1.default.strictEqual(value1, 'remembered-value');
40
+ node_assert_1.default.strictEqual(called, 1);
41
+ const value2 = await src_1.Cache.remember('remember-key', 10, callback);
42
+ node_assert_1.default.strictEqual(value2, 'remembered-value');
43
+ node_assert_1.default.strictEqual(called, 1); // should not be called again
44
+ });
45
+ (0, node_test_1.it)('can forget values', async () => {
46
+ await src_1.Cache.put('forget-key', 'value', 10);
47
+ await src_1.Cache.forget('forget-key');
48
+ const value = await src_1.Cache.get('forget-key');
49
+ node_assert_1.default.strictEqual(value, null);
50
+ });
51
+ (0, node_test_1.it)('can increment and decrement values', async () => {
52
+ await src_1.Cache.put('counter', 10, 10);
53
+ await src_1.Cache.increment('counter', 5);
54
+ node_assert_1.default.strictEqual(await src_1.Cache.get('counter'), 15);
55
+ await src_1.Cache.decrement('counter', 3);
56
+ node_assert_1.default.strictEqual(await src_1.Cache.get('counter'), 12);
57
+ });
58
+ (0, node_test_1.it)('can pull values (get and forget)', async () => {
59
+ await src_1.Cache.put('pull-key', 'pull-value', 10);
60
+ const value = await src_1.Cache.pull('pull-key');
61
+ node_assert_1.default.strictEqual(value, 'pull-value');
62
+ node_assert_1.default.strictEqual(await src_1.Cache.get('pull-key'), null);
63
+ });
64
+ (0, node_test_1.it)('can add values only if they do not exist', async () => {
65
+ await src_1.Cache.put('exists', 'value', 10);
66
+ const added1 = await src_1.Cache.add('exists', 'new-value', 10);
67
+ node_assert_1.default.strictEqual(added1, false);
68
+ node_assert_1.default.strictEqual(await src_1.Cache.get('exists'), 'value');
69
+ const added2 = await src_1.Cache.add('new', 'value', 10);
70
+ node_assert_1.default.strictEqual(added2, true);
71
+ node_assert_1.default.strictEqual(await src_1.Cache.get('new'), 'value');
72
+ });
73
+ (0, node_test_1.it)('can remember values forever', async () => {
74
+ await src_1.Cache.rememberForever('forever-key', async () => 'forever-value');
75
+ node_assert_1.default.strictEqual(await src_1.Cache.get('forever-key'), 'forever-value');
76
+ });
77
+ // ── Enterprise Features ─────────────────────────────────────────
78
+ (0, node_test_1.it)('can put, get, and forget multiple values', async () => {
79
+ await src_1.Cache.putMultiple({ 'm1': 'v1', 'm2': 'v2' }, 10);
80
+ const results = await src_1.Cache.getMultiple(['m1', 'm2', 'm3']);
81
+ node_assert_1.default.strictEqual(results['m1'], 'v1');
82
+ node_assert_1.default.strictEqual(results['m2'], 'v2');
83
+ node_assert_1.default.strictEqual(results['m3'], null);
84
+ await src_1.Cache.forgetMultiple(['m1', 'm2']);
85
+ const afterForget = await src_1.Cache.getMultiple(['m1', 'm2']);
86
+ node_assert_1.default.strictEqual(afterForget['m1'], null);
87
+ });
88
+ (0, node_test_1.it)('can use cache locks', async () => {
89
+ const lock = src_1.Cache.lock('test-lock', 10);
90
+ const acquired = await lock.acquire();
91
+ node_assert_1.default.strictEqual(acquired, true);
92
+ // Second lock attempt shouldn't succeed
93
+ const lock2 = src_1.Cache.lock('test-lock', 10);
94
+ node_assert_1.default.strictEqual(await lock2.acquire(), false);
95
+ await lock.release();
96
+ // After release, should succeed
97
+ node_assert_1.default.strictEqual(await lock2.acquire(), true);
98
+ await lock2.release();
99
+ });
100
+ (0, node_test_1.it)('can execute callbacks safely using lock.get()', async () => {
101
+ const lock = src_1.Cache.lock('callback-lock', 10);
102
+ let executed = false;
103
+ const result = await lock.get(async () => {
104
+ executed = true;
105
+ return 'done';
106
+ });
107
+ node_assert_1.default.strictEqual(result, 'done');
108
+ node_assert_1.default.strictEqual(executed, true);
109
+ // Lock should be released automatically, so this will work:
110
+ node_assert_1.default.strictEqual(await lock.acquire(), true);
111
+ await lock.release();
112
+ });
113
+ (0, node_test_1.it)('can tag and flush specific groups', async () => {
114
+ const usersCache = src_1.Cache.tags(['users']);
115
+ const postsCache = src_1.Cache.tags(['posts']);
116
+ await usersCache.put('u1', 'user info', 10);
117
+ await postsCache.put('p1', 'post info', 10);
118
+ node_assert_1.default.strictEqual(await usersCache.get('u1'), 'user info');
119
+ node_assert_1.default.strictEqual(await postsCache.get('p1'), 'post info');
120
+ // Flush ONLY users cache
121
+ await usersCache.flush();
122
+ node_assert_1.default.strictEqual(await usersCache.get('u1'), null);
123
+ node_assert_1.default.strictEqual(await postsCache.get('p1'), 'post info'); // posts intact
124
+ });
125
+ });
126
+ //# sourceMappingURL=Cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.test.js","sourceRoot":"","sources":["../../tests/Cache.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arikajs/cache",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Simple, fast, and driver-based caching system for the ArikaJS framework.",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -11,7 +11,8 @@
11
11
  "clean": "rm -rf dist",
12
12
  "prepare": "echo skip",
13
13
  "test": "npm run build && npm run build:tests && node scripts/fix-test-imports.js && node --test 'dist/tests/**/*.test.js'",
14
- "test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'"
14
+ "test:watch": "npm run build && npm run build:tests && node --test --watch 'dist/tests/**/*.test.js'",
15
+ "dev": "tsc -p tsconfig.json --watch"
15
16
  },
16
17
  "files": [
17
18
  "dist"
@@ -29,12 +30,13 @@
29
30
  },
30
31
  "repository": {
31
32
  "type": "git",
32
- "url": "git+https://github.com/arikajs/cache.git"
33
+ "url": "git+https://github.com/ArikaJs/arikajs.git",
34
+ "directory": "packages/cache"
33
35
  },
34
36
  "bugs": {
35
- "url": "https://github.com/arikajs/cache/issues"
37
+ "url": "https://github.com/ArikaJs/arikajs/issues"
36
38
  },
37
- "homepage": "https://github.com/arikajs/cache#readme",
39
+ "homepage": "https://github.com/ArikaJs/arikajs/tree/main/packages/cache#readme",
38
40
  "dependencies": {
39
41
  "ioredis": "^5.9.3"
40
42
  },