SessionStore.js 934 B

12345678910111213141516171819202122232425262728
  1. var Store = require('./Store');
  2. var safeStorage = require('./safeStorage');
  3. var isEmpty = require('./isEmpty');
  4. var stringify = require('./stringify');
  5. var defaults = require('./defaults');
  6. var isObj = require('./isObj');
  7. var sessionStorage = safeStorage('session');
  8. exports = Store.extend({
  9. initialize: function SessionStore(name, data) {
  10. this._name = name;
  11. data = data || {};
  12. var sessionData = sessionStorage.getItem(name);
  13. try {
  14. sessionData = JSON.parse(sessionData);
  15. } catch (e) {
  16. sessionData = {};
  17. }
  18. if (!isObj(sessionData)) sessionData = {};
  19. data = defaults(sessionData, data);
  20. this.callSuper(Store, 'initialize', [data]);
  21. },
  22. save: function(data) {
  23. if (isEmpty(data)) return sessionStorage.removeItem(this._name);
  24. sessionStorage.setItem(this._name, stringify(data));
  25. }
  26. });
  27. module.exports = exports;