Skip to content

Утилиты хранилища

Отдельные функции для инспекции и массового управления бэкендом хранилища, независимые от какого-либо конкретного экземпляра useStorage().

ts
import { getStorageQuota, exportStorage, importStorage, clearStorage } from 'vue-storage-kit'

getStorageQuota

() => Promise<StorageQuota>

Читает квоту хранилища браузера через navigator.storage.estimate(). Возвращает { quota: 0, usage: 0, usagePercent: 0 } в окружениях без Storage API (старые браузеры, SSR).

ts
interface StorageQuota {
  quota: number // общий объём байт, оценка браузера
  usage: number // байт использовано сейчас
  usagePercent: number // usage / quota, округлено до 2 знаков
}
ts
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().

ts
type StorageSnapshot = Record<string, string>
ts
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) уже существующий ключ остаётся нетронутым вместо замены.

ts
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 для этих ключей.

ts
// Стереть все ключи, принадлежащие этому приложению, например при выходе из системы
await clearStorage('local', 'myapp:')