Утилиты хранилища
Отдельные функции для инспекции и массового управления бэкендом хранилища, независимые от какого-либо конкретного экземпляра useStorage().
import { getStorageQuota, exportStorage, importStorage, clearStorage } from 'vue-storage-kit'getStorageQuota
() => Promise<StorageQuota>
Читает квоту хранилища браузера через navigator.storage.estimate(). Возвращает { quota: 0, usage: 0, usagePercent: 0 } в окружениях без Storage API (старые браузеры, SSR).
interface StorageQuota {
quota: number // общий объём байт, оценка браузера
usage: number // байт использовано сейчас
usagePercent: number // usage / quota, округлено до 2 знаков
}const { usage, quota, usagePercent } = await getStorageQuota()
console.log(`${usagePercent}% of storage used (${usage} / ${quota} bytes)`)exportStorage
(target?: StorageTarget, prefix?: string) => Promise<StorageSnapshot>
Читает каждый ключ (опционально отфильтрованный по prefix) из target (по умолчанию 'local') в обычный объект сырых сохранённых строк — снапшот, который можно сериализовать, скачать или позже передать в importStorage().
type StorageSnapshot = Record<string, string>const snapshot = await exportStorage('local', 'myapp:')
localStorage.setItem('backup', JSON.stringify(snapshot)) // либо скачать, отправить куда-то и т.д.importStorage
(snapshot: StorageSnapshot, target?: StorageTarget, options?: { overwrite?: boolean }) => Promise<void>
Записывает каждый ключ из snapshot обратно в target (по умолчанию 'local'). При overwrite: false (по умолчанию true) уже существующий ключ остаётся нетронутым вместо замены.
const snapshot = JSON.parse(localStorage.getItem('backup')!)
await importStorage(snapshot, 'local', { overwrite: false })clearStorage
(target?: StorageTarget, prefix?: string) => Promise<void>
Удаляет каждый ключ (опционально отфильтрованный по prefix) из target (по умолчанию 'local'). В отличие от remove() одиночного useStorage(), это очищает всё подходящее сразу, независимо от того, смонтирован ли сейчас composable для этих ключей.
// Стереть все ключи, принадлежащие этому приложению, например при выходе из системы
await clearStorage('local', 'myapp:')