safeStorage.js 584 B

12345678910111213141516171819202122232425
  1. var memStorage = require('./memStorage');
  2. exports = function(type) {
  3. type = type || 'local';
  4. var ret;
  5. switch (type) {
  6. case 'local':
  7. ret = window.localStorage;
  8. break;
  9. case 'session':
  10. ret = window.sessionStorage;
  11. break;
  12. }
  13. try {
  14. var x = 'test-localStorage-' + Date.now();
  15. ret.setItem(x, x);
  16. var y = ret.getItem(x);
  17. ret.removeItem(x);
  18. if (y !== x) throw new Error();
  19. } catch (e) {
  20. return memStorage;
  21. }
  22. return ret;
  23. };
  24. module.exports = exports;