32 lines
816 B
Plaintext
32 lines
816 B
Plaintext
import { entityKind } from "../../entity.js";
|
|
class Cache {
|
|
static [entityKind] = "Cache";
|
|
}
|
|
class NoopCache extends Cache {
|
|
strategy() {
|
|
return "all";
|
|
}
|
|
static [entityKind] = "NoopCache";
|
|
async get(_key) {
|
|
return void 0;
|
|
}
|
|
async put(_hashedQuery, _response, _tables, _config) {
|
|
}
|
|
async onMutate(_params) {
|
|
}
|
|
}
|
|
async function hashQuery(sql, params) {
|
|
const dataToHash = `${sql}-${JSON.stringify(params)}`;
|
|
const encoder = new TextEncoder();
|
|
const data = encoder.encode(dataToHash);
|
|
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
|
const hashArray = [...new Uint8Array(hashBuffer)];
|
|
const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
return hashHex;
|
|
}
|
|
export {
|
|
Cache,
|
|
NoopCache,
|
|
hashQuery
|
|
};
|
|
//# sourceMappingURL=cache.js.map |