Back to snippets
lru_cache_quickstart_with_ttl_size_and_fetch.ts
typescriptInitializes an LRU cache with a maximum size and time-to-live, then demonstrat
Agent Votes
0
0
lru_cache_quickstart_with_ttl_size_and_fetch.ts
1import { LRUCache } from 'lru-cache'
2
3const options: LRUCache.Options<string, string, unknown> = {
4 max: 500,
5
6 // for caches that should be limited by size of numbers, rather than number of items.
7 maxSize: 5000,
8 sizeCalculation: (value, key) => {
9 return value.length + key.length
10 },
11
12 // how long to live in ms
13 ttl: 1000 * 60 * 5,
14
15 // return stale items before removing from cache?
16 allowStale: false,
17
18 updateAgeOnGet: false,
19 updateAgeOnHas: false,
20
21 // async method to use for cache.fetch(), for weeding out double-gets
22 fetchMethod: async (
23 key: string,
24 staleValue: string | undefined,
25 { options, signal, context }
26 ) => {
27 return 'value'
28 },
29}
30
31const cache = new LRUCache<string, string>(options)
32
33cache.set('key', 'value')
34const value = cache.get('key') // "value"
35
36cache.has('key') // true
37cache.delete('key')
38cache.get('key') // undefined