@commandkit/redis 0.1.1-dev.20250604160656 → 0.1.1-dev.20250605020226

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/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Redis, type RedisOptions } from 'ioredis';
2
2
  import { CommandKitPluginRuntime, RuntimePlugin } from 'commandkit';
3
- import { CacheProvider } from '@commandkit/cache';
3
+ import { CacheProvider, CacheEntry } from '@commandkit/cache';
4
4
  export type Awaitable<T> = T | Promise<T>;
5
5
  export type SerializeFunction = (value: any) => Awaitable<string>;
6
6
  export type DeserializeFunction = (value: string) => Awaitable<any>;
@@ -43,7 +43,7 @@ export declare class RedisCache extends CacheProvider {
43
43
  * @param key The key to retrieve the value for.
44
44
  * @returns The value stored in the cache, or `undefined` if it does not exist.
45
45
  */
46
- get<T>(key: string): Promise<T | undefined>;
46
+ get<T>(key: string): Promise<CacheEntry<T> | undefined>;
47
47
  /**
48
48
  * Store a value in the cache.
49
49
  * @param key The key to store the value under.
package/dist/index.js CHANGED
@@ -35,7 +35,12 @@ class RedisCache extends cache_1.CacheProvider {
35
35
  if (value === null) {
36
36
  return undefined;
37
37
  }
38
- return this.deserialize(value);
38
+ const entry = this.deserialize(value);
39
+ if (entry.ttl && Date.now() > entry.ttl) {
40
+ await this.delete(key);
41
+ return undefined;
42
+ }
43
+ return entry;
39
44
  }
40
45
  /**
41
46
  * Store a value in the cache.
@@ -44,7 +49,11 @@ class RedisCache extends cache_1.CacheProvider {
44
49
  * @param ttl The time-to-live for the cache entry in milliseconds.
45
50
  */
46
51
  async set(key, value, ttl) {
47
- const serialized = this.serialize(value);
52
+ const entry = {
53
+ value,
54
+ ttl: ttl != null ? Date.now() + ttl : undefined,
55
+ };
56
+ const serialized = this.serialize(entry);
48
57
  const finalValue = serialized instanceof Promise ? await serialized : serialized;
49
58
  if (typeof ttl === 'number') {
50
59
  await this.redis.set(key, finalValue, 'PX', ttl);
@@ -97,4 +106,4 @@ exports.RedisPlugin = RedisPlugin;
97
106
  function redis(options) {
98
107
  return new RedisPlugin(options ?? {});
99
108
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUlBLHNCQUVDO0FBdklELHFDQUFtRDtBQUNuRCwyQ0FBb0U7QUFDcEUsNkNBQW9FO0FBTXBFOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBYTtJQTZCM0MsWUFBbUIsS0FBNEI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLEtBQUssWUFBWSxlQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FBSSxHQUFXO1FBQzdCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUFJLEdBQVcsRUFBRSxLQUFRLEVBQUUsR0FBWTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sVUFBVSxHQUNkLFVBQVUsWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFaEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQzdCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVc7UUFDN0IsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUMxQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUEzR0QsZ0NBMkdDO0FBRUQsTUFBYSxXQUFZLFNBQVEsMEJBQTJCO0lBQTVEOztRQUNrQixTQUFJLEdBQUcsYUFBYSxDQUFDO0lBS3ZDLENBQUM7SUFIUSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQTRCO1FBQ2hELElBQUEsd0JBQWdCLEVBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBTkQsa0NBTUM7QUFFRCxTQUFnQixLQUFLLENBQUMsT0FBc0I7SUFDMUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQyJ9
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0pBLHNCQUVDO0FBbEpELHFDQUFtRDtBQUNuRCwyQ0FBb0U7QUFDcEUsNkNBQWdGO0FBTWhGOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxxQkFBYTtJQTZCM0MsWUFBbUIsS0FBNEI7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLEtBQUssWUFBWSxlQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FBSSxHQUFXO1FBQzdCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFrQixDQUFDO1FBQ3ZELElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLLENBQUMsR0FBRyxDQUFJLEdBQVcsRUFBRSxLQUFRLEVBQUUsR0FBWTtRQUNyRCxNQUFNLEtBQUssR0FBa0I7WUFDM0IsS0FBSztZQUNMLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2hELENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sVUFBVSxHQUNkLFVBQVUsWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFaEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXO1FBQzdCLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVc7UUFDN0IsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUMxQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUF0SEQsZ0NBc0hDO0FBRUQsTUFBYSxXQUFZLFNBQVEsMEJBQTJCO0lBQTVEOztRQUNrQixTQUFJLEdBQUcsYUFBYSxDQUFDO0lBS3ZDLENBQUM7SUFIUSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQTRCO1FBQ2hELElBQUEsd0JBQWdCLEVBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBTkQsa0NBTUM7QUFFRCxTQUFnQixLQUFLLENBQUMsT0FBc0I7SUFDMUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commandkit/redis",
3
- "version": "0.1.1-dev.20250604160656",
3
+ "version": "0.1.1-dev.20250605020226",
4
4
  "description": "Redis cache provider for CommandKit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,9 +27,9 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  "typescript": "^5.7.3",
30
- "@commandkit/cache": "0.0.0-dev.20250604160656",
31
- "commandkit": "1.0.0-dev.20250604160656",
32
- "tsconfig": "0.0.0-dev.20250604160656"
30
+ "tsconfig": "0.0.0-dev.20250605020226",
31
+ "commandkit": "1.0.0-dev.20250605020226",
32
+ "@commandkit/cache": "0.0.0-dev.20250605020226"
33
33
  },
34
34
  "scripts": {
35
35
  "lint": "tsc --noEmit",