"use strict";

/**
 * @flow
 * @private
 */
/* global localStorage */
const StorageController = {
  async: 0,
  getItem(path /*: string*/) /*: ?string*/{
    return localStorage.getItem(path);
  },
  setItem(path /*: string*/, value /*: string*/) {
    try {
      localStorage.setItem(path, value);
    } catch (e) {
      // Quota exceeded, possibly due to Safari Private Browsing mode
      console.log(e.message);
    }
  },
  removeItem(path /*: string*/) {
    localStorage.removeItem(path);
  },
  getAllKeys() {
    const keys = [];
    for (let i = 0; i < localStorage.length; i += 1) {
      keys.push(localStorage.key(i));
    }
    return keys;
  },
  clear() {
    localStorage.clear();
  }
};
module.exports = StorageController;