Localstorage with Expiry

localStorageWithExpiry.setItem("foo", "bar", 1000);

console.log(localStorageWithExpiry.getItem("foo"));
// bar

setTimeout(() => {
  console.log(localStorageWithExpiry.getItem("foo"));
}, 1500);
// null
window.localStorageWithExpiry = {
  setItem(key, value, expiry) {
    let object = {
      value,
      expiry: Date.now() + expiry,
    };

    localStorage.setItem(key, JSON.stringify(object));
  },
  getItem(key) {
    const { value, expiry } = JSON.parse(localStorage.getItem(key));

    if (Date.now() >= expiry) {
      localStorage.removeItem(key);
      return null;
    }

    return value;
  },
  removeItem(key) {
    localStorage.removeItem(key);
  },
  clear() {
    localStorage.clear();
  },
};