Revert "cloudflare worker: cache holds promises instead of buffers"

see errors related to "The script will never generate a response."

This reverts commit e0402ded7f.
This commit is contained in:
Brandon Liu
2022-07-21 10:19:34 +08:00
parent 1db1836365
commit 95b1f90a04

View File

@@ -7,7 +7,7 @@ interface Env {
interface CacheEntry { interface CacheEntry {
lastUsed: number; lastUsed: number;
buffer: Promise<ArrayBuffer>; buffer: DataView;
} }
export class LRUCache { export class LRUCache {
@@ -29,17 +29,18 @@ export class LRUCache {
let val = this.entries.get(cacheKey); let val = this.entries.get(cacheKey);
if (val) { if (val) {
val.lastUsed = this.counter++; val.lastUsed = this.counter++;
return [true, new DataView(await val.buffer)]; return [true, val.buffer];
} }
let resp = await bucket.get(key, { let resp = await bucket.get(key, {
range: { offset: offset, length: length }, range: { offset: offset, length: length },
}); });
let a = (resp as R2ObjectBody).arrayBuffer(); let a = await (resp as R2ObjectBody).arrayBuffer();
let d = new DataView(a);
this.entries.set(cacheKey, { this.entries.set(cacheKey, {
lastUsed: this.counter++, lastUsed: this.counter++,
buffer: a, buffer: d,
}); });
if (this.entries.size > 128) { if (this.entries.size > 128) {
let minUsed = Infinity; let minUsed = Infinity;
@@ -53,7 +54,7 @@ export class LRUCache {
if (minKey) this.entries.delete(minKey); if (minKey) this.entries.delete(minKey);
} }
return [false, new DataView(await a)]; return [false, d];
} }
} }