All files cache.ts

100% Statements 8/8
100% Branches 0/0
100% Functions 4/4
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 292x             2x   2x   3x           3x     3x   1x         2x  
import Cookies from 'js-cookie'
 
export interface IPutioAnalyticsCacheOptions {
  domain: string
  expires: number
}
 
const createCache = <T extends object>(
  options: IPutioAnalyticsCacheOptions,
) => ({
  set: (key: string, value: T) => {
    Cookies.set(key, value, {
      expires: options.expires,
      domain: options.domain,
      sameSite: 'lax',
    })
 
    return value
  },
 
  get: (key: string) => Cookies.getJSON(key) as T,
 
  clear: (key: string) => Cookies.remove(key, { domain: options.domain }),
})
 
export type PutioAnalyticsCache = ReturnType<typeof createCache>
 
export default createCache