nielse63/312-Development

View on GitHub
src/lib/cache.js

Summary

Maintainability
A
0 mins
Test Coverage

function cacheIsOld(dateString) {
  const ONE_MINUTE = 60;
  const ONE_HOUR = ONE_MINUTE * 60;
  const TIME_TO_CACHE = ONE_HOUR;
  const date = Date.parse(dateString) / 1000;
  const today = Date.parse(new Date()) / 1000;
  const diff = today - date;
  return diff > TIME_TO_CACHE;
}

export function getCachedData(url) {
  const string = localStorage.getItem(url);
  if (!string) {
    return null;
  }
  const cache = JSON.parse(string);
  if (cacheIsOld(cache.saved)) {
    return null;
  }
  return cache;
}

export function saveCachedData(url, data) {
  const stringData = JSON.stringify({
    saved: new Date(),
    ok:    !data.error,
    data,
  });
  localStorage.setItem(url, stringData);
}