@toapi/cache 0.4.0 → 0.5.1

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.
@@ -1,5 +1,5 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
- import type { CacheEntry, Cache, Subscription, Json } from "./index";
2
+ import type { CacheEntry, Cache, Subscription, Json } from "./index.js";
3
3
  export declare class FilesystemCache implements Cache {
4
4
  db: DatabaseSync;
5
5
  gcTimeout: number;
@@ -12,6 +12,7 @@ export declare class FilesystemCache implements Cache {
12
12
  tags: string[];
13
13
  }): Promise<void>;
14
14
  delete(tags: string[], meta?: Json): Promise<void>;
15
+ invalidate(tags: string[], meta?: Json): Promise<void>;
15
16
  gc(): void;
16
17
  subscribe(callback: Subscription): () => void;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-cache.d.ts","sourceRoot":"","sources":["../src/filesystem-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAOrE,qBAAa,eAAgB,YAAW,KAAK;IAC3C,EAAE,EAAE,YAAY,CAAC;IACjB,SAAS,SAAkB;IAC3B,WAAW,oBAA2B;gBAE1B,QAAQ,EAAE,MAAM;IAgCtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqBlD,GAAG,CAAC,EACF,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BlD,EAAE;IAuCF,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;CAO9C"}
1
+ {"version":3,"file":"filesystem-cache.d.ts","sourceRoot":"","sources":["../src/filesystem-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOxE,qBAAa,eAAgB,YAAW,KAAK;IAC3C,EAAE,EAAE,YAAY,CAAC;IACjB,SAAS,SAAkB;IAC3B,WAAW,oBAA2B;gBAE1B,QAAQ,EAAE,MAAM;IAgCtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqBlD,GAAG,CAAC,EACF,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BtD,EAAE;IAuCF,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;CAO9C"}
@@ -78,6 +78,9 @@ export class FilesystemCache {
78
78
  return Promise.resolve();
79
79
  }
80
80
  delete(tags, meta) {
81
+ return this.invalidate(tags, meta);
82
+ }
83
+ invalidate(tags, meta) {
81
84
  this.db.exec("BEGIN;");
82
85
  try {
83
86
  const stmt = this.db.prepare(`
@@ -1,5 +1,5 @@
1
1
  import { DatabaseSync } from "node:sqlite";
2
- import type { CacheEntry, Cache, Subscription, Json } from "./index";
2
+ import type { CacheEntry, Cache, Subscription, Json } from "./index.js";
3
3
  export declare class InMemoryCache implements Cache {
4
4
  db: DatabaseSync;
5
5
  gcTimeout: number;
@@ -12,6 +12,7 @@ export declare class InMemoryCache implements Cache {
12
12
  tags: string[];
13
13
  }): Promise<void>;
14
14
  delete(tags: string[], meta?: Json): Promise<void>;
15
+ invalidate(tags: string[], meta?: Json): Promise<void>;
15
16
  gc(): void;
16
17
  subscribe(callback: Subscription): () => void;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-cache.d.ts","sourceRoot":"","sources":["../src/in-memory-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAMrE,qBAAa,aAAc,YAAW,KAAK;IACzC,EAAE,eAAgC;IAClC,SAAS,SAAkB;IAC3B,WAAW,oBAA2B;;IA2BhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqBlD,GAAG,CAAC,EACF,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BlD,EAAE;IAuCF,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;CAO9C"}
1
+ {"version":3,"file":"in-memory-cache.d.ts","sourceRoot":"","sources":["../src/in-memory-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMxE,qBAAa,aAAc,YAAW,KAAK;IACzC,EAAE,eAAgC;IAClC,SAAS,SAAkB;IAC3B,WAAW,oBAA2B;;IA2BhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqBlD,GAAG,CAAC,EACF,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BtD,EAAE;IAuCF,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;CAO9C"}
@@ -71,6 +71,9 @@ export class InMemoryCache {
71
71
  return Promise.resolve();
72
72
  }
73
73
  delete(tags, meta) {
74
+ return this.invalidate(tags, meta);
75
+ }
76
+ invalidate(tags, meta) {
74
77
  this.db.exec("BEGIN;");
75
78
  try {
76
79
  const stmt = this.db.prepare(`
package/dist/index.d.ts CHANGED
@@ -15,9 +15,17 @@ export interface Cache {
15
15
  ttl: number;
16
16
  tags: string[];
17
17
  }): Promise<void>;
18
+ /** @deprecated use invalidate instead
19
+ *
20
+ * invalidate is more idiomatic naming for a cache (and this is clearly a pure cache, not general purpose database).
21
+ * it is also consistent with the wording used in the tapi server package.
22
+ */
18
23
  delete(tags: string[], meta?: {
19
24
  clientId?: string;
20
25
  }): Promise<void>;
26
+ invalidate(tags: string[], meta?: {
27
+ clientId?: string;
28
+ }): Promise<void>;
21
29
  subscribe(callback: Subscription): () => void;
22
30
  }
23
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,EAAE,GACN;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC7C,GAAG,CACD,KAAK,EAAE,UAAU,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI,CAAC;CAC/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,IAAI,EAAE,GACN;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5B,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC7C,GAAG,CACD,KAAK,EAAE,UAAU,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI,CAAC;CAC/C"}
@@ -1,5 +1,5 @@
1
1
  import type { Pool, PoolClient } from "pg";
2
- import type { Cache, CacheEntry, Json, Subscription } from "./index";
2
+ import type { Cache, CacheEntry, Json, Subscription } from "./index.js";
3
3
  export interface PostgresCacheOptions {
4
4
  /**
5
5
  * When `true` (the default) the required tables and indexes are created
@@ -40,6 +40,7 @@ export declare class PostgresCache implements Cache {
40
40
  tags: string[];
41
41
  }): Promise<void>;
42
42
  delete(tags: string[], meta?: Json): Promise<void>;
43
+ invalidate(tags: string[], meta?: Json): Promise<void>;
43
44
  private setupListener;
44
45
  subscribe(callback: Subscription): () => void;
45
46
  private gc;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-cache.d.ts","sourceRoot":"","sources":["../src/postgres-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,IAAI,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAkBrE,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,KAAK;IAgBvC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IAhBjB,aAAa,oBAA2B;IACxC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,SAAS,SAAkB;IAE3B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAS;IAExB,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAGvB,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,oBAAyB;YAW9B,KAAK;IA8Bb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqB5C,GAAG,CAAC,EACR,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDX,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAkB1C,aAAa;IAiB3B,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;YAgB/B,EAAE;IA6BhB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
1
+ {"version":3,"file":"postgres-cache.d.ts","sourceRoot":"","sources":["../src/postgres-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAgB,MAAM,IAAI,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkBxE,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,KAAK;IAgBvC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IAhBjB,aAAa,oBAA2B;IACxC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,SAAS,SAAkB;IAE3B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAgC;IAChD,OAAO,CAAC,OAAO,CAAS;IAExB,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAGvB,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,oBAAyB;YAW9B,KAAK;IA8Bb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAqB5C,GAAG,CAAC,EACR,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAkB9C,aAAa;IAiB3B,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;YAgB/B,EAAE;IA6BhB;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
@@ -111,7 +111,10 @@ export class PostgresCache {
111
111
  client.release();
112
112
  }
113
113
  }
114
- async delete(tags, meta) {
114
+ delete(tags, meta) {
115
+ return this.invalidate(tags, meta);
116
+ }
117
+ async invalidate(tags, meta) {
115
118
  await this.ready;
116
119
  // `cache_tags` rows are removed automatically via `ON DELETE CASCADE`.
117
120
  await this.pool.query(`
@@ -1,5 +1,5 @@
1
1
  import type { RedisClientType } from "@redis/client";
2
- import type { Cache, CacheEntry, Json, Subscription } from "./index";
2
+ import type { Cache, CacheEntry, Json, Subscription } from "./index.js";
3
3
  export declare class RedisCache implements Cache {
4
4
  private redis;
5
5
  subscriptions: Set<Subscription>;
@@ -12,6 +12,7 @@ export declare class RedisCache implements Cache {
12
12
  tags: string[];
13
13
  }): Promise<void>;
14
14
  delete(tags: string[], meta?: Json): Promise<void>;
15
+ invalidate(tags: string[], meta?: Json): Promise<void>;
15
16
  setupSubscription(): Promise<void>;
16
17
  subscribe(callback: Subscription): () => void;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redis-cache.d.ts","sourceRoot":"","sources":["../src/redis-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AASrE,qBAAa,UAAW,YAAW,KAAK;IAI1B,OAAO,CAAC,KAAK;IAHzB,aAAa,oBAA2B;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC;gBAET,KAAK,EAAE,eAAe;IAEpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkB5C,GAAG,CAAC,EACR,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBX,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBlD,iBAAiB;IAWvB,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;CAc9C"}
1
+ {"version":3,"file":"redis-cache.d.ts","sourceRoot":"","sources":["../src/redis-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AASxE,qBAAa,UAAW,YAAW,KAAK;IAI1B,OAAO,CAAC,KAAK;IAHzB,aAAa,oBAA2B;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC;gBAET,KAAK,EAAE,eAAe;IAEpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkB5C,GAAG,CAAC,EACR,GAAG,EACH,IAAI,EACJ,UAAU,EACV,GAAG,EACH,IAAI,GACL,EAAE,UAAU,GAAG;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD,iBAAiB;IAWvB,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;CAc9C"}
@@ -37,7 +37,10 @@ export class RedisCache {
37
37
  }
38
38
  await Promise.all(promises);
39
39
  }
40
- async delete(tags, meta) {
40
+ delete(tags, meta) {
41
+ return this.invalidate(tags, meta);
42
+ }
43
+ async invalidate(tags, meta) {
41
44
  const keys = await Promise.all(tags.map((tag) => this.redis.sMembers(`tag:${tag}`)));
42
45
  const keySet = new Set(keys.flat());
43
46
  const keysToDelete = tags.map((tag) => `tag:${tag}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toapi/cache",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "author": {
5
5
  "name": "Michel Smola",
6
6
  "email": "michel.smola@farbenmeer.de"