@variablesoftware/mock-kv
Version:
🎛️🏷️✨ Mock KV Namespace for testing Cloudflare Workers
22 lines (21 loc) • 835 B
JavaScript
import logface from "@variablesoftware/logface";
export function listHandler(data) {
return async (_opts) => {
const now = Date.now();
// Remove expired keys from the store
for (const [key, entry] of Object.entries(data)) {
if (entry.expiresAt !== undefined && entry.expiresAt < now) {
delete data[key];
}
}
const prefix = _opts?.prefix;
let keys = Object.keys(data);
if (typeof prefix === "string") {
keys = keys.filter((key) => key.startsWith(prefix));
}
const limit = _opts?.limit ?? Infinity;
const result = keys.slice(0, limit).map((key) => ({ name: key }));
logface.debug("list() → returning %d key(s)", result.length);
return { keys: result, list_complete: true };
};
}