Skip to content

Commit ee82e4a

Browse files
Ensure default ttl is used
1 parent 9ac2d1a commit ee82e4a

File tree

1 file changed

+13
-2
lines changed
  • packages/utils/src/lib/server/cache

1 file changed

+13
-2
lines changed

packages/utils/src/lib/server/cache/s3.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ export class S3Cache<V extends Uint8Array = Uint8Array> extends BaseCache<V> {
5252
}),
5353
);
5454

55+
if (!head.Metadata) {
56+
return undefined;
57+
}
58+
5559
const expiresAtStr = head.Metadata?.['expires-at'];
5660
if (expiresAtStr && Date.now() > Number.parseInt(expiresAtStr)) {
5761
await this.delete(key);
@@ -71,11 +75,17 @@ export class S3Cache<V extends Uint8Array = Uint8Array> extends BaseCache<V> {
7175
return res.Body.transformToByteArray() as Promise<V>;
7276
}
7377

74-
public async set(key: string, value: V, ttl?: number, jitter?: JitterMode | JitterFn): Promise<void> {
78+
public async set(
79+
key: string,
80+
value: V,
81+
ttl?: number | undefined,
82+
jitter?: JitterMode | JitterFn | undefined,
83+
): Promise<void> {
7584
const s3Key = this.buildKey(key);
7685

7786
try {
7887
let expiresAt: number | undefined;
88+
ttl = ttl ?? this.#options.defaultTTL;
7989
if (ttl !== undefined) {
8090
const jitterFn = createJitter(jitter ?? this.#options.defaultJitter ?? JitterMode.None);
8191
expiresAt = Date.now() + Math.round(jitterFn(ttl));
@@ -140,7 +150,8 @@ export class S3Cache<V extends Uint8Array = Uint8Array> extends BaseCache<V> {
140150
}
141151

142152
public async clearPattern(pattern: string): Promise<void> {
143-
const rx = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
153+
const escapedPattern = pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
154+
const rx = new RegExp('^' + escapedPattern.replace(/\*/g, '.*') + '$');
144155
const toDel: string[] = [];
145156
for await (const k of this.keys()) {
146157
if (rx.test(k)) {

0 commit comments

Comments
 (0)