import type { StorageAdapter } from './types.js' /** * localStorage adapter for browser environments. Falls back to a no-op when * `localStorage` is unavailable (e.g. SSR). * * @public */ export const localStorageAdapter: StorageAdapter = { get: (key: string): Promise => { try { return Promise.resolve(localStorage.getItem(key)) } catch { return Promise.resolve(null) } }, set: (key: string, value: string): Promise => { try { localStorage.setItem(key, value) } catch { // localStorage not available } return Promise.resolve() }, remove: (key: string): Promise => { try { localStorage.removeItem(key) } catch { // localStorage not available } return Promise.resolve() }, } /** * In-memory storage adapter for testing or server-side use. * * @public */ export function createMemoryStorage(): StorageAdapter { const store = new Map() return { get: (key: string): Promise => { return Promise.resolve(store.get(key) ?? null) }, set: (key: string, value: string): Promise => { store.set(key, value) return Promise.resolve() }, remove: (key: string): Promise => { store.delete(key) return Promise.resolve() }, } }