Skip to content

Commit fdf079e

Browse files
authored
Merge pull request #579 from underctrl-io/cache-optimizations
refactor: cache plugin optimizations and providers
2 parents bb1b7e0 + a00aeb5 commit fdf079e

33 files changed

+538
-301
lines changed

apps/website/docs/api-reference/cache/classes/memory-cache.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## MemoryCache
1515

16-
<GenerationInfo sourceFile="packages/cache/src/memory-cache.ts" sourceLine="7" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/providers/memory-cache.ts" sourceLine="7" packageName="@commandkit/cache" />
1717

1818
MemoryCache is an in-memory cache provider that implements the CacheProvider interface.
1919
It stores cache entries in a Map and supports basic operations like get, set, exists, delete, clear, and expire.
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
title: "RedisCache"
3+
isDefaultIndex: false
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
## RedisCache
15+
16+
<GenerationInfo sourceFile="packages/cache/src/providers/redis.ts" sourceLine="16" packageName="@commandkit/cache" />
17+
18+
A cache provider that uses Redis as the cache store.
19+
20+
21+
22+
*Example*
23+
24+
```ts
25+
const redisCache = new RedisCache();
26+
new CommandKit({
27+
...
28+
cacheProvider: redisCache,
29+
});
30+
```
31+
32+
```ts title="Signature"
33+
class RedisCache extends CacheProvider {
34+
public redis: Redis;
35+
public serialize: SerializeFunction;
36+
public deserialize: DeserializeFunction;
37+
constructor()
38+
constructor(redis: Redis)
39+
constructor(redis: RedisOptions)
40+
constructor(redis?: Redis | RedisOptions)
41+
get(key: string) => Promise<CacheEntry<T> | undefined>;
42+
set(key: string, value: T, ttl?: number) => Promise<void>;
43+
clear() => Promise<void>;
44+
delete(key: string) => Promise<void>;
45+
exists(key: string) => Promise<boolean>;
46+
expire(key: string, ttl: number) => Promise<void>;
47+
}
48+
```
49+
* Extends: <code><a href='/docs/api-reference/cache/classes/cache-provider#cacheprovider'>CacheProvider</a></code>
50+
51+
52+
53+
<div className="members-wrapper">
54+
55+
### redis
56+
57+
<MemberInfo kind="property" type={`Redis`} />
58+
59+
60+
### serialize
61+
62+
<MemberInfo kind="property" type={`<a href='/docs/api-reference/cache/types/serialize-function#serializefunction'>SerializeFunction</a>`} />
63+
64+
Serialize function used to serialize values before storing them in the cache.
65+
By default, it uses `JSON.stringify`.
66+
### deserialize
67+
68+
<MemberInfo kind="property" type={`<a href='/docs/api-reference/cache/types/deserialize-function#deserializefunction'>DeserializeFunction</a>`} />
69+
70+
Deserialize function used to deserialize values before returning them from the cache.
71+
By default, it uses `JSON.parse`.
72+
### constructor
73+
74+
<MemberInfo kind="method" type={`() => RedisCache`} />
75+
76+
Create a new RedisCache instance.
77+
### constructor
78+
79+
<MemberInfo kind="method" type={`(redis: Redis) => RedisCache`} />
80+
81+
Create a new RedisCache instance with the provided Redis client.
82+
### constructor
83+
84+
<MemberInfo kind="method" type={`(redis: RedisOptions) => RedisCache`} />
85+
86+
Create a new RedisCache instance with the provided Redis options.
87+
### constructor
88+
89+
<MemberInfo kind="method" type={`(redis?: Redis | RedisOptions) => RedisCache`} />
90+
91+
92+
### get
93+
94+
<MemberInfo kind="method" type={`(key: string) => Promise&#60;<a href='/docs/api-reference/cache/interfaces/cache-entry#cacheentry'>CacheEntry</a>&#60;T&#62; | undefined&#62;`} />
95+
96+
Retrieve a value from the cache.
97+
### set
98+
99+
<MemberInfo kind="method" type={`(key: string, value: T, ttl?: number) => Promise&#60;void&#62;`} />
100+
101+
Store a value in the cache.
102+
### clear
103+
104+
<MemberInfo kind="method" type={`() => Promise&#60;void&#62;`} />
105+
106+
Clear all entries from the cache.
107+
### delete
108+
109+
<MemberInfo kind="method" type={`(key: string) => Promise&#60;void&#62;`} />
110+
111+
Delete a value from the cache.
112+
### exists
113+
114+
<MemberInfo kind="method" type={`(key: string) => Promise&#60;boolean&#62;`} />
115+
116+
Check if a value exists in the cache.
117+
### expire
118+
119+
<MemberInfo kind="method" type={`(key: string, ttl: number) => Promise&#60;void&#62;`} />
120+
121+
Set the time-to-live for a cache entry.
122+
123+
124+
</div>

apps/website/docs/api-reference/cache/functions/cache-life.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## cacheLife
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="232" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="202" packageName="@commandkit/cache" />
1717

1818
Sets the TTL for the current cache operation
1919

apps/website/docs/api-reference/cache/functions/cache-tag.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## cacheTag
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="206" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="176" packageName="@commandkit/cache" />
1717

1818
Sets a custom identifier for the current cache operation
1919

apps/website/docs/api-reference/cache/functions/cleanup.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## cleanup
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="289" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="259" packageName="@commandkit/cache" />
1717

1818
Cleans up stale cache entries.
1919

apps/website/docs/api-reference/cache/functions/is-cached-function.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## isCachedFunction
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="281" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="251" packageName="@commandkit/cache" />
1717

1818
Checks if a function is wrapped with cache functionality
1919

apps/website/docs/api-reference/cache/functions/revalidate-tag.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## revalidateTag
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="254" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="224" packageName="@commandkit/cache" />
1717

1818
Marks cache entries for invalidation by their tag. The invalidation only happens when the path is next visited.
1919

apps/website/docs/api-reference/cache/interfaces/cache-context.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## CacheContext
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="36" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="29" packageName="@commandkit/cache" />
1717

1818
Context for managing cache operations within an async scope
1919

apps/website/docs/api-reference/cache/interfaces/cache-metadata.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription';
1313

1414
## CacheMetadata
1515

16-
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="49" packageName="@commandkit/cache" />
16+
<GenerationInfo sourceFile="packages/cache/src/use-cache.ts" sourceLine="42" packageName="@commandkit/cache" />
1717

1818
Configuration options for cache behavior
1919

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
title: "Awaitable"
3+
isDefaultIndex: false
4+
generated: true
5+
---
6+
7+
import MemberInfo from '@site/src/components/MemberInfo';
8+
import GenerationInfo from '@site/src/components/GenerationInfo';
9+
import MemberDescription from '@site/src/components/MemberDescription';
10+
11+
<!-- This file was generated from the CommandKit source. Do not modify. Instead, re-run the "docgen" script -->
12+
13+
14+
## Awaitable
15+
16+
<GenerationInfo sourceFile="packages/cache/src/providers/redis.ts" sourceLine="4" packageName="@commandkit/cache" />
17+
18+
19+
20+
```ts title="Signature"
21+
type Awaitable<T> = T | Promise<T>
22+
```

0 commit comments

Comments
 (0)