28 lines
599 B
JavaScript
28 lines
599 B
JavaScript
import hash from './object-hash-wrapper.js'
|
|
|
|
const MAX_AGE_IN_MS = 120000
|
|
|
|
export default class SessionCache {
|
|
static add(storage, parameters, data) {
|
|
const key = hash(parameters)
|
|
const timestamp = Date.now()
|
|
const value = {
|
|
data,
|
|
timestamp,
|
|
}
|
|
storage.setItem(key, JSON.stringify(value))
|
|
}
|
|
|
|
static get(storage, parameters) {
|
|
const key = hash(parameters)
|
|
const value = JSON.parse(storage.getItem(key))
|
|
if (
|
|
value &&
|
|
value.timestamp &&
|
|
value.timestamp > Date.now() - MAX_AGE_IN_MS
|
|
)
|
|
return value.data
|
|
return null
|
|
}
|
|
}
|