import type { Observable } from "@legendapp/state"; import { ObservablePersistSessionStorage } from "@legendapp/state/persist-plugins/local-storage"; import { createStorage } from "@usels/core"; /** * Framework-agnostic reactive `sessionStorage` binding. Thin wrapper around * `createStorage` with `ObservablePersistSessionStorage` as the persist plugin. * * @param key - Storage key. * @param defaults - Initial value and type inference source. * @returns A writable `Observable` backed by sessionStorage. */ export function createSessionStorage(key: string, defaults: T): Observable; export function createSessionStorage( key: string, // eslint-disable-next-line @typescript-eslint/no-explicit-any defaults: any // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Observable { return createStorage(key, defaults, { plugin: ObservablePersistSessionStorage }).data$; }