@tilfin/cache
Key-Value based cache map for sync or async
Features
- Passive TTL(Time-To-Live) expiring
- Hook when cached item is deleted
Install
$ npm install @tilfin/cache
How to use
Cache
new
constructor
- defaultTtl
number
- default time-to-live millseconds. no expiration if zero (default: 0) - onDelete
(item) => void
- callback when cached item deleted
set
sets the value for the key with ttl for the expires
- key
string
- a key to be assigned - value
*
- cached value - [ttl]
number
- time-to-live millseconds. no expiration if zero
get
returns the value specified by key or undefined if not found
- key
string
- a key to be fetched
delete
deletes the value specified by key and returns true, or false if not found
- key
string
- a key to be deleted
clear
deletes all values
const { Cache } = require('@tilfin/cache')
const cache = new Cache({
defaultTtl: 60000 // Delete cached item if getting it after 60 seconds passed
})
export.set = (item) => {
cache.set(item.id, item)
}
export.get = (id) => {
return cache.get(id)
}
CacheAsync
new
constructor
- defaultTtl
number
- default time-to-live millseconds. no expiration if zero (default: 0) - onDelete
async (item) => void
- callback when cached item deleted
set
sets the value for the key with ttl for the expires
- key
string
- a key to be assigned - value
*
- cached value - [ttl]
number
- time-to-live millseconds. no expiration if zero
get
returns the value specified by key or undefined if not found
- key
<string>
- a key to be fetched
delete
deletes the value specified by key and returns true, or false if not found
- key
<string>
- a key to be deleted
clear
deletes all values
const { CacheAsync } = require('@tilfin/cache')
const cache = new CacheAsync({
onDelete: async (item) => {
await item.dispose()
}
})
export.set = async (item) => {
await cache.set(item.id, item, 30)
}
export.get = async (id) => {
return await cache.get(id)
}