diff --git a/readme.md b/readme.md index 73e20c7..fa04e60 100644 --- a/readme.md +++ b/readme.md @@ -37,3 +37,9 @@ recommendable. Turns template literals directly into HTML templates. Just read the code, it's like 5 lines or so. + +## Storage + +Currently a sngle class `ObjectStorage` implementing the API of the Storage +class using a plain JS Map as backend. This is mostly meant as a page-local +fallback to LocalStorage and SessionStorage diff --git a/storage.js b/storage.js new file mode 100644 index 0000000..8eebc47 --- /dev/null +++ b/storage.js @@ -0,0 +1,21 @@ +export class ObjectStorage { + #map = new Map() + key(index) { + return [...this.#map.keys()][index] + } + getItem(keyName) { + if (this.#map.has(keyName)) + return this.#map.get(keyName) + else + return null + } + setItem(keyName, keyValue) { + this.#map.set(keyName, keyValue) + } + removeItem(keyName) { + this.#map.delete(keyName) + } + clear() { + this.#map.clear() + } +}