- storage: Bound memory storage with optional maxSize + LRU eviction (#38)
- cache: Support dynamic per-entry TTL via
getMaxAgehook (#39) - Per-call cache status and
x-cacheresponse header (#40) - cache: Support asynchronous validate option (#44)
- cache:
⚠️ Pass call args tovalidate(#46) - http: Support
allowQueryto filter query params (#14, #29) - http: Support
shouldCacheto reject responses from caching (#48, #55) - http: Emit
Varyresponse header forvaries(#56) - http:
⚠️ allowCookiesand disallow cookies from caching by default (#58) - cache: Add write-time
serializehook (#59) - http: Support binary response bodies (#66)
- http: Add
sendCacheControlfor server-only caching (#49, #67) - http: Expose
.expire/.invalidate/.resolveKeyson cached handlers (#72)
- http: Honor explicit Cache-Control no-store/private (#42)
- cache:
⚠️ Never serve stale withstaleMaxAge: 0(#45) - http: Keep custom cache keys collision-free (#60)
- Leftovers from #58 (#58)
- http: Respect user-supplied
shouldBypassCache(#50, #62) - cache:
⚠️ Usefn.namefor cache key whennameoption is omitted (#63) - http:
⚠️ Strip non-allowlisted Set-Cookie instead of blocking storage (#61, #68) - http: Strip transport headers from cached responses (#74)
⚠️ Disableswrby default (#57)- http:
⚠️ BuildResponseCacheEntryinserialize; pass bypassed responses through untouched (#65)
- Add ISR caching section to README (83f8091)
- Set up docs website (#69)
- Note sendCacheControl/ISR purge caveats (4ffe207)
- cache:
⚠️ Pass call args tovalidate(#46) - http:
⚠️ allowCookiesand disallow cookies from caching by default (#58) - cache:
⚠️ Never serve stale withstaleMaxAge: 0(#45) - cache:
⚠️ Usefn.namefor cache key whennameoption is omitted (#63) - http:
⚠️ Strip non-allowlisted Set-Cookie instead of blocking storage (#61, #68) ⚠️ Disableswrby default (#57)- http:
⚠️ BuildResponseCacheEntryinserialize; pass bypassed responses through untouched (#65)
- Pooya Parsa (@pi0)
- Pi0x x@pi0.io
- Raminjafary (@raminjafary)
- Logosww (@Logosww)
- cache: Add
expireCacheand.expire()for SWR-friendly invalidation (#23)
- cache: Handle eviction promise rejections and use waitUntil (#16)
- Update deps (b9ac4b9)
- cache: Skip writing to lower tiers on multi-tier cache hit (4fe0de7)
- Pooya Parsa (@pi0)
- Respect
staleMaxAge(8915db3) - cache: Add
resolveCacheKeyand.resolveKey()(#6) - storage: Nullish
setdeletes entry instead of storing dead weight (71d5f11) - Multi-tier cache base (#7)
- cache: Add
invalidateCache()and.invalidate()(#8)
- Respect zero ttl (#5)
- http: Merge default options when partial opts are provided (#2)
- cache: Catch sync storage errors in get/set (ee1bb02)
- cache: Evict stale entry on SWR revalidation failure (#9)
- storage: Proactively flush expired memory entries (#10)
- Apply automated updates (4868309)
- Apply automated updates (attempt 2/3) (05c9f4e)
- Update deps (94a2b26)
- Apply automated updates (b028820)
- Apply automated updates (ed51d82)
- Apply automated updates (459bade)
- http: Add framework integration hooks to
defineCachedHandler(2bfd379)
- Update plan with nitro upstream requests (7f61e38)
- Apply automated updates (e8febf0)
- Apply automated updates (attempt 2/3) (e061d46)
- Pooya Parsa (@pi0)
- Remove ufo dep (ec65378)
- Apply automated updates (1ae48ce)
- Pooya Parsa (@pi0)