UNPKG

staticql

Version:

Type-safe query engine for static content including Markdown, YAML, JSON, and more.

32 lines (31 loc) 847 B
export function cacheAsyncGen(fn, keySelector, cache) { return async function* (...args) { const key = keySelector(...args); if (await cache.has(key)) { for (const v of await cache.get(key)) { yield v; } } else { const values = []; for await (const v of fn(...args)) { values.push(v); yield v; } cache.set(key, values); } }; } export function cacheAsyncFunc(fn, keySelector, cache) { return async (...args) => { const key = keySelector(...args); if (await cache.has(key)) { return cache.get(key); } else { const value = await fn(...args); cache.set(key, value); return value; } }; }