UNPKG

@arkade-os/sdk

Version:

Bitcoin wallet SDK with Taproot and Ark integration

49 lines (48 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LocalStorageAdapter = void 0; class LocalStorageAdapter { getSafeLocalStorage() { try { if (typeof window === "undefined" || !window.localStorage) { return null; } // Test access to ensure localStorage is actually available window.localStorage.length; return window.localStorage; } catch { // localStorage may throw in some environments (e.g., private browsing, disabled storage) return null; } } async getItem(key) { const localStorage = this.getSafeLocalStorage(); if (!localStorage) { throw new Error("localStorage is not available in this environment"); } return localStorage.getItem(key); } async setItem(key, value) { const localStorage = this.getSafeLocalStorage(); if (!localStorage) { throw new Error("localStorage is not available in this environment"); } localStorage.setItem(key, value); } async removeItem(key) { const localStorage = this.getSafeLocalStorage(); if (!localStorage) { throw new Error("localStorage is not available in this environment"); } localStorage.removeItem(key); } async clear() { const localStorage = this.getSafeLocalStorage(); if (!localStorage) { throw new Error("localStorage is not available in this environment"); } localStorage.clear(); } } exports.LocalStorageAdapter = LocalStorageAdapter;