UNPKG

code-craft-studio

Version:

A comprehensive QR code and barcode scanning/generation library for React. Works with or without Capacitor. Supports 22+ QR data types and 14+ barcode formats (EAN, UPC, Code 128, etc.), with customizable designs, analytics, and React components. Provider

78 lines 2.62 kB
import { logger } from '../../utils/logger'; export class CapacitorStorageAdapter { constructor(prefix = 'code-craft-studio-') { this.prefix = prefix; this.loadPreferences(); } async loadPreferences() { try { const { Preferences } = await import('@capacitor/preferences'); this.preferences = Preferences; } catch (_error) { logger.warn('CapacitorStorageAdapter: @capacitor/preferences not available, falling back to localStorage'); } } async get(key) { if (!this.preferences) { return localStorage.getItem(this.prefix + key); } try { const result = await this.preferences.get({ key: this.prefix + key }); return result.value || null; } catch (error) { logger.error('CapacitorStorageAdapter: Error getting item', error); return null; } } async set(key, value) { if (!this.preferences) { localStorage.setItem(this.prefix + key, value); return; } try { await this.preferences.set({ key: this.prefix + key, value }); } catch (error) { logger.error('CapacitorStorageAdapter: Error setting item', error); throw error; } } async remove(key) { if (!this.preferences) { localStorage.removeItem(this.prefix + key); return; } try { await this.preferences.remove({ key: this.prefix + key }); } catch (error) { logger.error('CapacitorStorageAdapter: Error removing item', error); throw error; } } async clear() { if (!this.preferences) { const keysToRemove = []; for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); if (key && key.startsWith(this.prefix)) { keysToRemove.push(key); } } keysToRemove.forEach(key => localStorage.removeItem(key)); return; } try { const { keys } = await this.preferences.keys(); const keysToRemove = keys.filter((key) => key.startsWith(this.prefix)); await Promise.all(keysToRemove.map((key) => this.preferences.remove({ key }))); } catch (error) { logger.error('CapacitorStorageAdapter: Error clearing storage', error); throw error; } } } //# sourceMappingURL=capacitor-storage.js.map