UNPKG

strata-storage

Version:

Zero-dependency universal storage plugin providing a unified API for all storage operations across web, Android, and iOS platforms

49 lines (48 loc) 1.99 kB
import { PreferencesAdapter } from "./adapters/capacitor/PreferencesAdapter.js"; import { SqliteAdapter } from "./adapters/capacitor/SqliteAdapter.js"; import { SecureAdapter } from "./adapters/capacitor/SecureAdapter.js"; import { FilesystemAdapter } from "./adapters/capacitor/FilesystemAdapter.js"; // Export Capacitor adapters export { PreferencesAdapter } from "./adapters/capacitor/PreferencesAdapter.js"; export { SqliteAdapter } from "./adapters/capacitor/SqliteAdapter.js"; export { SecureAdapter } from "./adapters/capacitor/SecureAdapter.js"; export { FilesystemAdapter } from "./adapters/capacitor/FilesystemAdapter.js"; // Export the plugin for direct access if needed export { StrataStorage } from "./plugin/index.js"; /** * Register Capacitor adapters with a Strata instance * This is completely optional and only needed for Capacitor apps */ export async function registerCapacitorAdapters(storage) { // Check if Capacitor is available const hasCapacitor = typeof window !== 'undefined' && window.Capacitor && window.Capacitor.isNativePlatform(); if (!hasCapacitor) { console.warn('Capacitor not detected. Capacitor adapters will not be registered.'); return; } // Register Capacitor adapters storage.registerAdapter(new PreferencesAdapter()); storage.registerAdapter(new SqliteAdapter()); storage.registerAdapter(new SecureAdapter()); storage.registerAdapter(new FilesystemAdapter()); // Re-initialize to make new adapters available if (storage.isInitialized) { await storage.initialize(); } } /** * Helper to check if running in Capacitor environment */ export function isCapacitorEnvironment() { return (typeof window !== 'undefined' && window.Capacitor && window.Capacitor.isNativePlatform()); } /** * Get Capacitor-specific storage types */ export function getCapacitorStorageTypes() { return ['preferences', 'sqlite', 'secure', 'filesystem']; }