From a0be18ba08f87bb268ba73d8675f298968fd6a12 Mon Sep 17 00:00:00 2001 From: bat Date: Thu, 4 May 2023 07:01:16 +0000 Subject: [PATCH] create storage class that wraps localStorage/sessionStorage --- storage.js | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 storage.js diff --git a/storage.js b/storage.js new file mode 100644 index 0000000..51d135d --- /dev/null +++ b/storage.js @@ -0,0 +1,55 @@ +class Session { + getItem(k) { + return sessionStorage.getItem(k) + } + + setItem(k, v) { + sessionStorage.setItem(k, v) + } + + removeItem(k) { + sessionStorage.removeItem(k) + } + + keys() { + return Object.keys(sessionStorage) + } + + values() { + return Object.values(sessionStorage) + } + + entries() { + return Object.entries(sessionStorage) + } +} + +export class Storage { + constructor() { + this.session = new Session() + } + + getItem(k) { + return localStorage.getItem(k) + } + + setItem(k, v) { + localStorage.setItem(k, v) + } + + removeItem(k) { + localStorage.removeItem(k) + } + + keys() { + return Object.keys(localStorage) + } + + values() { + return Object.values(localStorage) + } + + entries() { + return Object.entries(localStorage) + } +} \ No newline at end of file