misago-storage.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. MisagoStorage = function() {
  2. this.has = function(key) {
  3. return localStorage.getItem(key) !== null;
  4. }
  5. this.get = function(key, value) {
  6. if (this.has(key)) {
  7. return localStorage.getItem(key);
  8. } else if (value !== null) {
  9. return value;
  10. } else {
  11. return null;
  12. }
  13. }
  14. this.set = function(key, value) {
  15. localStorage.setItem(key, value)
  16. return value;
  17. }
  18. this.pop = function(key, value) {
  19. value = localStorage.getItem(key, value);
  20. localStorage.removeItem(key);
  21. return value;
  22. }
  23. }
  24. MisagoDummyStorage = function() {
  25. this.has = function(key) {
  26. return false
  27. }
  28. this.get = function(key, value) {
  29. if (value !== undefined) {
  30. return value;
  31. } else {
  32. return null;
  33. }
  34. }
  35. this.set = function(key, value) {
  36. return false;
  37. }
  38. this.pop = function(key, value) {
  39. if (value !== undefined) {
  40. return value;
  41. } else {
  42. return null;
  43. }
  44. }
  45. }
  46. if (localStorage !== undefined) {
  47. Misago.Storage = new MisagoStorage();
  48. } else {
  49. Misago.Storage = new MisagoDummyStorage();
  50. }