diff --git a/README.md b/README.md index 4dbcee3..c43d26e 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ await get("Hello"); // "World!" The main purpose of **Storage** is to provide a set of adapters that normalize across various client side storage mechanisms (`localStorage` / `sessionStorage`, IndexedDB, cookies, and OPFS) with a consistent key-value API (`get()`, `set()`, etc). +> Note: This project is built for use in a browser context. Compatibility with other platforms is purely coincidental. + ## Client Side Storage Adapters **Storage** ships with adapters for the following storage mechanisms: diff --git a/src/adapter.local-storage.js b/src/adapter.local-storage.js index 136e96f..68e3633 100644 --- a/src/adapter.local-storage.js +++ b/src/adapter.local-storage.js @@ -40,16 +40,16 @@ export default publicAPI; async function has(name) { // note: https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem#return_value - return (window.localStorage.getItem(name) !== null); + return (globalThis.localStorage.getItem(name) !== null); } async function get(name) { - return safeJSONParse(window.localStorage.getItem(name)); + return safeJSONParse(globalThis.localStorage.getItem(name)); } async function set(name,value) { try { - window.localStorage.setItem( + globalThis.localStorage.setItem( name, value != null && typeof value == "object" ? JSON.stringify(value) : @@ -66,25 +66,25 @@ async function set(name,value) { } async function remove(name) { - window.localStorage.removeItem(name); + globalThis.localStorage.removeItem(name); return true; } async function keys() { var storeKeys = []; - for (let i = 0; i < window.localStorage.length; i++) { - storeKeys.push(window.localStorage.key(i)); + for (let i = 0; i < globalThis.localStorage.length; i++) { + storeKeys.push(globalThis.localStorage.key(i)); } return storeKeys; } async function entries() { var storeEntries = []; - for (let i = 0; i < window.localStorage.length; i++) { - let name = window.localStorage.key(i); + for (let i = 0; i < globalThis.localStorage.length; i++) { + let name = globalThis.localStorage.key(i); storeEntries.push([ name, - safeJSONParse(window.localStorage.getItem(name)), + safeJSONParse(globalThis.localStorage.getItem(name)), ]); } return storeEntries; diff --git a/src/adapter.session-storage.js b/src/adapter.session-storage.js index 29e986f..9194d89 100644 --- a/src/adapter.session-storage.js +++ b/src/adapter.session-storage.js @@ -41,16 +41,16 @@ export default publicAPI; async function has(name) { // note: https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem#return_value - return (window.sessionStorage.getItem(name) !== null); + return (globalThis.sessionStorage.getItem(name) !== null); } async function get(name) { - return safeJSONParse(window.sessionStorage.getItem(name)); + return safeJSONParse(globalThis.sessionStorage.getItem(name)); } async function set(name,value) { try { - window.sessionStorage.setItem( + globalThis.sessionStorage.setItem( name, value != null && typeof value == "object" ? JSON.stringify(value) : @@ -67,25 +67,25 @@ async function set(name,value) { } async function remove(name) { - window.sessionStorage.removeItem(name); + globalThis.sessionStorage.removeItem(name); return true; } async function keys() { var storeKeys = []; - for (let i = 0; i < window.sessionStorage.length; i++) { - storeKeys.push(window.sessionStorage.key(i)); + for (let i = 0; i < globalThis.sessionStorage.length; i++) { + storeKeys.push(globalThis.sessionStorage.key(i)); } return storeKeys; } async function entries() { var storeEntries = []; - for (let i = 0; i < window.sessionStorage.length; i++) { - let name = window.sessionStorage.key(i); + for (let i = 0; i < globalThis.sessionStorage.length; i++) { + let name = globalThis.sessionStorage.key(i); storeEntries.push([ name, - safeJSONParse(window.sessionStorage.getItem(name)), + safeJSONParse(globalThis.sessionStorage.getItem(name)), ]); } return storeEntries;