@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.
- package/dist/filesystem-cache.d.ts +2 -1
- package/dist/filesystem-cache.d.ts.map +1 -1
- package/dist/filesystem-cache.js +3 -0
- package/dist/in-memory-cache.d.ts +2 -1
- package/dist/in-memory-cache.d.ts.map +1 -1
- package/dist/in-memory-cache.js +3 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/postgres-cache.d.ts +2 -1
- package/dist/postgres-cache.d.ts.map +1 -1
- package/dist/postgres-cache.js +4 -1
- package/dist/redis-cache.d.ts +2 -1
- package/dist/redis-cache.d.ts.map +1 -1
- package/dist/redis-cache.js +4 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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"}
|
package/dist/filesystem-cache.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/in-memory-cache.js
CHANGED
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/postgres-cache.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/postgres-cache.js
CHANGED
|
@@ -111,7 +111,10 @@ export class PostgresCache {
|
|
|
111
111
|
client.release();
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
|
|
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(`
|
package/dist/redis-cache.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/redis-cache.js
CHANGED
|
@@ -37,7 +37,10 @@ export class RedisCache {
|
|
|
37
37
|
}
|
|
38
38
|
await Promise.all(promises);
|
|
39
39
|
}
|
|
40
|
-
|
|
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}`);
|